Cargo 是 Rust 的构建系统和包管理器。Rust 开发者常用 Cargo 来管理 Rust 工程和获取工程所依赖的库。

Cargo 是什么

Cargo 是 Rust 的构建系统和包管理器。

Rust 开发者常用 Cargo 来管理 Rust 工程和获取工程所依赖的库。在上个教程中我们曾使用 cargo new greeting 命令创建了一个名为 greeting 的工程,Cargo 新建了一个名为 greeting 的文件夹并在里面部署了一个 Rust 工程最典型的文件结构。这个 greeting 文件夹就是工程本身。

Cargo 功能

Cargo 除了创建工程以外还具备构建(build)工程、运行(run)工程等一系列功能,构建和运行分别对应以下命令:

cargo build
cargo run

Cargo 还具有获取包、打包、高级构建等功能,详细使用方法参见 Cargo 命令。

在 VSCode 中配置 Rust 工程

Cargo 是一个不错的构建工具,如果使 VSCode 与它相配合那么 VSCode 将会是一个十分便捷的开发环境。

在上一章中我们建立了 greeting 工程,现在我们用 VSCode 打开 greeting 文件夹(注意不是 runoob-greeting)。

打开 greeting 之后,在里面新建一个新的文件夹 .vscode (注意 vscode 前面的点,如果有这个文件夹就不需要新建了)。在新建的 .vscode 文件夹里新建两个文件 tasks.json 和 launch.json,文件内容如下:
tasks.json 文件

{ "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command":"cargo", "args": ["build"] } ]
}

launch.json 文件(适用在 Windows 系统上)

{ "version": "0.2.0", "configurations": [ { "name": "(Windows) 启动", "preLaunchTask": "build", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false }, { "name": "(gdb) 启动", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "这里填GDB所在的目录", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ]
}

launch.json 文件(适用在 Linux 系统上)

{"version": "0.2.0","configurations": [{"name": "Debug","type": "gdb","preLaunchTask": "build","request": "launch","target": "${workspaceFolder}/target/debug/${workspaceFolderBasename}","cwd": "${workspaceFolder}"}]
}

launch.json 文件(适用在 Mac OS 系统上)

{"version": "0.2.0","configurations": [{"name": "(lldb) 启动","type": "cppdbg","preLaunchTask": "build","request": "launch","program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "lldb"}]
}

然后点击 VSCode 左栏的 "运行"。

如果你使用的是 MSVC 选择 "(Windows) 启动"。

如果使用的是 MinGW 且安装了 GDB 选择"(gdb)启动",gdb 启动前请注意填写 launch.json 中的 "miDebuggerPath"。

程序就会开始调试运行了。运行输出将出现在"调试控制台"中:

在 VSCode 中调试 Rust

调试程序的方法与其它环境相似,只需要在行号的左侧点击红点就可以设置断点,在运行中遇到断点会暂停,以供开发者监视实时变量的值。

Cargo 教程介绍相关推荐

  1. 网易云音乐android api_网易云音乐怎么发布个人Mlog?网易云音乐发布个人Mlog的教程介绍...

    现在很多人都喜欢发Mlog,网易云音乐中也可以发布mlog啦,下面小编就为大家带来网易云音乐发布个人Mlog的具体操作方法,想知道的话就来看看吧. 网易云音乐怎么发布个人Mlog?网易云音乐发布个人M ...

  2. Docker教程介绍

    Docker教程介绍 教程环境准备 linux 系统 virtualbox 软件安装 教程介绍 0-安装Vagrant,安装 centos 系统. 1-docker 介绍 2-docker 安装 3- ...

  3. QQ浏览噐怎么拍照识题 QQ浏览器拍照识题教程介绍说明

    QQ浏览噐在最近推出了拍照识题的服务,有不少感兴趣的用户想知道应该怎么使用该功能.那么下面小编就为大家介绍了QQ浏览器拍照识题的方法,希望对你有所帮助. QQ浏览器拍照识题的步骤: 1.现在进入了QQ ...

  4. 通俗易懂的SpringBoot教程---day1---Springboot入门教程介绍

    通俗易懂的SpringBoot教程-day1-教程介绍 教程介绍: 初级教程: 一. Spring Boot入门 二. Spring Boot配置 三. Spring Boot与日志 四. Sprin ...

  5. windows 10 php安装教程,win10系统下wnmp的安装教程介绍

    本篇文章给大家带来的内容是关于win10系统下wnmp的安装教程介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 刚刚开始学习PHP时,一直使用phpstudy,后面发现很多东西自 ...

  6. 第2课 Altium Designer20(AD20)+VESC6.4实战教程:教程介绍与准备(北冥有鱼)

    第2课 Altium Designer20(AD20)+VESC6.4实战教程:教程介绍与准备(北冥有鱼)

  7. Android怎么弄大头特效,抖音微笑大头怎么弄?抖音微笑大头特效教程介绍[多图]...

    熟悉抖音短视频的小伙伴应该都知道,抖音里面经常会出现好玩有趣的特效功能,就是在您拍摄的过程中会出现不一样的表情包,可以增添您视频的生动性趣味性.例如长腿特效.恶魔特效.撕脸特效以及各种好玩的表情包等等 ...

  8. cpu风扇等其他电脑上风扇的消除噪音方法教程介绍示范

    cpu风扇等其他电脑风扇的消除噪音方法教程介绍示范 对于PC机器刚买回来机箱声音很小,用旧了之后,也就时间长了之后就越来越响,有的机箱放在灰尘较多的地方使用就更加响了.这其实是机箱内某些地方因为灰尘积 ...

  9. 华为gt2抬腕亮屏设置教程介绍

    华为gt2一直深受不少用户的喜爱.其中还内置了一个抬腕亮屏功能.开启后当用户抬起手腕手表就会自动亮屏.相信很多朋友还不清楚抬腕亮屏如何设置?快来看看为大家整理的详细教程吧! 华为gt2抬腕亮屏设置教程 ...

最新文章

  1. 计量经济学和机器学习方法的在假设上的区别
  2. main 函数解析(二)—— Linux-0.11 学习笔记(六)
  3. 【MyBatis使用】mapper.xml 中特殊符号的 2 种处理方法(CDATA区+替代字符举例)
  4. Python 日期时间相关
  5. Light bulbs(上海icpc网络预选赛,差分离散化)
  6. 传统反病毒软件厂商学会新把戏
  7. s3c2440第一个裸奔程序——跑马灯(转)
  8. matlab 曲线拟合--视频编码中PSNR计算及码率计算
  9. 用可视化报告拿到20W年终奖的时候,才知道数据可视化的重要
  10. 一种基于语音识别的机器人语义识别系统的制作方法
  11. window-linux移植
  12. 开源人脸106关键点
  13. java课程设计学生信息管理系统。
  14. 无线桥接怎么设置网关和dns服务器,斐讯K2路由器怎么设置桥接_斐讯K2无线中继设置教程-192路由网...
  15. 算数-02-史丰收算法
  16. Y-我的PPT监控之流媒体服务器的搭建
  17. 【时空序列预测第四篇】PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive
  18. 经典面试题-Jdo 是什么
  19. dnf剑魂buff等级上限_DNF95全新版本,剑魂之玩法攻略
  20. 申请加精—ERP实施方法论的比较(SAP、 Oracle、J.D.E、BANN、用友等实施方法论)...

热门文章

  1. 又一个创业者自杀:心生郁结,被曝曾卖房给员工发工资
  2. Python设计模式-建造者模式
  3. 数据库的介绍、分类、作用和特点
  4. python 时间time()及日期date()函数
  5. Servlet 传输中文乱码解决方法
  6. JSP第二次作业_2小题
  7. 蜜罐的详细配置过程以及所需要的的软件!以及全部配置!
  8. 干货|(DL~3)deep learning中一些层的介绍
  9. 深度学习100问:图像语义分割有哪些经典的上采样方法?
  10. 【OpenCV 4开发详解】Laplacian算子