Rust 第一个rust程序Hello Rust️

文章目录

  • 前言
  • 一、vscode 安装rust相关插件
  • 二、Cargo New
  • 三、vscode调试rust
      • LLDB


前言

Rust学习系列。今天就让我们掌握第一个rust程序。Hello Rust 🦀️。
在上一篇文章我们在macOS成功安装了rust。


一、vscode 安装rust相关插件

以下是一些常用的 Rust 开发插件:

  1. Rust Analyzer ,社区提供,可以说是2024年最好用的rust插件。这个是官方的Rust (rust-lang)

  2. Crates (serayuzgur):提供了一个 Crates.io 的浏览器和搜索工具,可以方便地查看和搜索 Rust crate。

  3. CodeLLDB (Vadim Chugunov):通过 LLDB 调试器在 VS Code 中进行 Rust 代码调试。

  4. Better TOML (burtlo):提供针对 TOML 配置文件的语法高亮和格式化功能。

  5. GitLens (eamodio):提供了对 Git 存储库的深入集成,可以在代码中显示 Git 提交的注释和作者信息。

  6. Rustfmt (ravikola):提供 Rust 代码格式化的功能,保持代码风格的一致性。

  7. Rust Test Lens (Ryan Levick):在测试文件上显示 Rust 测试的状态,并提供快速运行测试的功能。

  8. Rusty Code (Codeflake):提供了一些 Rust 代码片段,可以快速生成常见的 Rust 代码片段。

  9. Polacode (Polfcode):提供了一个方便的截图工具,可以将代码片段以漂亮的方式导出为图片。

二、Cargo New

Cargo New 创建一个rust项目。
在这里插入图片描述
生成的项目结构
在这里插入图片描述
程序入口
在这里插入图片描述

执行cargo build 后,然后直接打开** ./target/debug/hello_cargo ** 就会运行
在这里插入图片描述

但 Cargo run 相当于 cargo build + 打开编译后的文件
在这里插入图片描述

三、vscode调试rust

在 Rust 中,可以通过修改 .vscode/launch.json 文件来配置调试。请按照以下步骤进行操作:

  1. 打开项目文件夹,并进入 .vscode 文件夹。

  2. 找到并打开 launch.json 文件。如果文件不存在,请创建一个新的文件,并命名为 launch.json

  3. configurations 数组中添加一个新的调试配置。每个调试配置都是一个 JSON 对象,包含了调试器启动时需要的一些配置信息。

  4. 根据需要,可以修改以下属性:

    • type: 调试器的类型。对于 Rust,应该设置为 cppdbg
    • request: 调试器的启动方式。对于 Rust,通常为 launch
    • name: 调试配置的名称。可以根据自己的喜好进行命名。
    • program: 需要调试的程序的路径。可以是 Rust 项目的二进制文件路径。
    • args: 调试程序时传递的命令行参数。
    • cargoArgs: 调试程序时传递给 cargo 的命令行参数。
    • cwd: 调试程序时的工作目录。默认为 ${workspaceFolder},即项目的根目录。
    • env: 调试程序时所设置的环境变量。
    • preLaunchTask: 在启动调试器之前执行的任务名称。
  5. 保存 launch.json 文件。

LLDB

以下是windows和macos的配置,其中macOS type是LLDB。
其中LLDB 是一个开源的调试器,用于调试 C、C++、Objective-C 和 Swift 程序。 在运行 Rust 代码时,会使用 LLDB 来提供调试能力。 LLDB 提供了一些调试功能,如断点设置、堆栈跟踪、变量查看等,使得调试过程更加方便和高效。所以vscode会显示如下加载过程。
在这里插入图片描述

{"version": "0.2.0","configurations": [{"name": "(Windows) Launch","type": "cppvsdbg","request": "launch","program": "${workspaceRoot}/target/debug/foo.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceRoot}","environment": [],"externalConsole": true},{"name": "(OSX) Launch","type": "lldb","request": "launch","program": "${workspaceRoot}/target/debug/执行文件名,target是build生成的目录","args": [],"cwd": "${workspaceRoot}",}]
}

完成上述步骤后,你可以在 Visual Studio Code 的调试面板中选择你新增的调试配置,并通过点击“启动调试”按钮来启动 Rust 调试。

如果没有生效,按照下面的步骤查看是否允许断点。

在这里插入图片描述在这里插入图片描述

成功调试如下
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从传统到现代:易点易动固定资产管理系统利用RFID技术高效管理固定资产

近年来,随着RFID技术的发展与成熟,它被越来越多地应用于企业资产管理领域。易点易动推出的固定资产管理系统就将RFID技术深度整合,实现了企业固定资产管理模式的跨越式变革。 传统管理模式的不足 传统的手工登记式管理模式在企业固定资产管理中存在很多问题: 信息录入缺乏规范…

幻兽帕鲁服务器自动重启备份-python

幻兽帕鲁服务器自动重启备份-python 1. 前置知识点2. 目录结构3. 代码内容4. 原理解释5. 额外备注 基于python编写的服务器全自动管理工具,能够实现自动定时备份存档,以及在检测到服务器崩溃之后自动重新启动,并且整合了对于frp端口转发工具的…

c语言:贪吃蛇的实现

目录 贪吃蛇实现的技术前提: Win32 API介绍 控制台程序(console) 控制台屏幕上的坐标 GetStdHandle GetConsoleCursorInfo CONSOLE_CURSOR_INFO SetConsoleCursorInfo SetConsoleCursorPosition GetAsyncKeyState 宽字符的打印 …

进程中线程使用率偏高问题排查

1. top命令查看CPU使用率高的进程 2. top -H -p 15931(进程PID) 查看进程下的线程 3. printf "%x\n" 17503(线程PID) 线程PID 10进制转16进制 0x445f 4. jstack -l 15931(JVM进程PID) 导出java进程栈信息,里面包含线程nid0x445f和所在的类&#xff0…

【AG32VF407】国产MCU+FPGA Verilog双边沿检测输出方波

视频讲解 [AG32VF407]国产MCUFPGA Verilog双边沿检测输出方波 实验过程 本次使用使用AG32VF407开发板中的FPGA,使用双clk的双边沿进行检测,同步输出方波 同时可以根据输出的方波检测clk的频率,以及双clk的相位关系,如下为verilog…

生活资料 伊舍小镇

生活资料 伊舍小镇 电费交付—国家电网 咨询:95598 用户:*** 查询:微信“国网北京电力”公众号→我的用电→余额查询→立即购电 支付:微信→我→服务→生活缴费→自动缴费 燃气费交付-北京燃气 咨询:96777 用户&am…

考研/计算机二级数据结构刷题之顺序表

目录 第一题 顺序表的初始化,销毁,头插,尾插,头删,尾删,指定位置插入,指定删除以及打印 第二题 移除元素 题目链接: OJ链接 题目详解:移除元素 第三题:删…

ONLYOFFICE 8.0 测评:重塑办公新标杆,你绝对不能错过的版本!

ONLYOFFICE 8.0 测评:办公新境界的全新突破 一、全新的界面设计二、可填写的 PDF 表单 免费表单模板三、双向文本四、电子表格中的新增功能五、协作功能升级六、跨平台性能优化七、强化安全性八、更丰富的插件生态九、辅助功能:优化的屏幕朗读器 随着科…

华为数通方向HCIP-DataCom H12-821题库(单选题:421-440)

第421题 以下关于IS-IS中路由器分类的描述,错误的是哪一项? A、Level-1路由器无法与Level-2路由器建立邻接关系 B、华为路由器上配置IS-IS时,缺省时,路由器全局Level为Level-1-2 C、Level-2的LSDB只包含Level-2路由器所在区域的路由信息 D、Level-1路由器可以和Level-1-2路…

c语言--二进制和其他进制之间的转换

目录 一、前言二、二进制、十进制、十六进制、八进制的组成2.1二进制的组成2.2十进制的组成2.3八进制的组成2.4十六进制的组成 三、二进制转换为十进制3.1 二进制转换为十进制3.2十进制转换为二进制 四、二进制转八进制和十六进制4.1二进制转八进制4.2二进制转换为十六进制 五、…

[c++]多态的原理

引言 OOP的核心思想是多态性。多态性这个词源自希腊语,其含义是“多种形式”。我们把具有继承关系的多个类型称为多态类型,因为我们能使用这些类型的“多种形式”而无须在意它们的差异。引用或指针的静态类型与动态类型不同这一事实正是C语言支持多态性的…

ios搭建OpenGL环境

前言 本篇文章介绍在ios搭建OpenGL开发环境 在app的启动文章中,讲述了一个ios应用是如何启动的以及在IOS 13之后苹果公司推出的多窗口功能,通过app的启动这篇文章,我们基本能随心所欲的搭建一个app应用环境,搭建完成后的基本文件…

基于Python的深度学习的身份证识别考勤系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Text Mesh Pro图文混排如何对任何图片都能实现

1)Text Mesh Pro图文混排如何对任何图片都能实现 2)Unity iOS平台的小图占用特别大的内存 3)只在编辑器内,纹理不开启Read&Write情况下,如何获取纹理所有颜色值 4)准备在海外发行游戏,有哪些…

【3DGS】从新视角合成到3D Gaussian Splatting

文章目录 引言:什么是新视角合成任务定义一般步骤NeRF的做法NeRF的三维重建NeRF的渲染 3DGS的三维重建从一组图片估计点云高斯点云模型球谐函数参数优化损失函数和协方差矩阵的优化高斯点的数量控制(Adaptive Density Control)新的问题 3DGS的渲染:快速可…

通过html2canvas和jsPDF将网页内容导出成pdf

jsPDF参考:https://github.com/parallax/jsPDF html2canvas参考:https://github.com/niklasvh/html2canvas 或者 https://html2canvas.hertzen.com 思路 使用html2canvas将选中DOM生成截图对象将截图对象借助jsPDF导出为PDF文件 代码 这是一个示例&a…

如何编写接口测试用例

作为测试人,我们经常要对项目中的接口进行接口测试,那么在做接口测试的时候,如何写接口测试用例呢? 什么是接口测试 首先我们要了解一下,什么是接口测试? 那么首先要搞清楚,我们一般说的接口…

uniapp开发一个交流社区小程序

uniapp开发一个交流社区小程序 假期的时候简单学了一下uniapp,想开发一款类似百度贴吧的交流社区来练练手。本篇文章主要记录开发过程,文末附上项目地址。 主要需要开发以下几个页面。 信息页面热榜页面用户主页用户信息页 信息页面 该页面的功能主要…

【Android】RxJava系列01-基本概述和基本用法

少年啊,要永远相信美好的事情即将发生 【Android】RxJava系列01-基本概述和基本用法 1.RxJava的概述2.RxJava的作用3.观察者和被观察者4.背压5.RxJava的基本用法步骤一,创建Observer(观察者)步骤二,创建Observable&…

华为nova12系列:图片HDR显示,让你的照片全面升级!

你是不是也想给自己的照片加点料,让它们看起来更真实、捕捉到更多的细节和光影?不用愁,华为nova12系列就为你量身打造了图片HDR显示技术,让你的照片从此焕发绚丽光芒! 回忆一下,在节日的夜晚想拍下绚丽的灯…