Rust中的Cargo构建、运行、调试

 更新时间:2022年09月28日 14:43:12   作者:共饮一杯无  
Cargo是rustup安装后自带的,Cargo?是?Rust?的构建系统和包管理器,这篇文章主要介绍了Rust之Cargo构建、运行、调试,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

基本概念

Cargo是rustup安装后自带的,Cargo 是 Rust 的构建系统和包管理器。
Rust 开发者常用 Cargo 来管理 Rust 工程和获取工程所依赖的库。入门教程中使用 cargo new helloworld 命令创建了一个名为 helloworld 的工程,Cargo 新建了一个名为 helloworld 的文件夹并在里面部署了一个 Rust 工程最典型的文件结构。这个 helloworld 文件夹就是工程本身。

Cargo相关命令

Cargo 除了创建工程以外还具备构建(build)工程、运行(run)工程等一系列功能,具体如下:

#创建—个普通的项目:
cargo new project_name --bin 
#创建一个库cargo build
cargo new lib_name --lib--vcs none
#构建编译,默认会编译到target/debug/project_name下
cargo build
#运行
cargo run
#构建编译发布版本,这会做很多优化,并编译到target/release/project_name下
cargo build --release
#如果你想修改cargo .lock文件的话,运行它
cargo update
#如果你只是想更新rand版本的话,运行它
cargo update-p rand
#运行test测试
cargo test abc
#检查代码,确保能通过编译,但不产生执行文件其速度比cargo build快得多编写代码时可以反复的使用cargo check检查代码,提高效率。
cargo check

创建工程目录说明

cargo new helloworld可以创建一个helloword的工程目录,目录结构如下:

image.png

src下面是代码目录。
target是编译后的文件目录。
.gitignore主要功能是屏蔽某些文件,使得这些文件不被追踪(tracked),自然push后也不会上传到github等平台。
Cargo.lock编译过程中自动生成的 Cargo.lock 文件,记录了相关资源信息,保证我们以后可以重新构建。
Cargo.toml为该工程的配置文件,这个关系类似于: package.json 是 npm 的配置文件。

VSCode 中配置 Rust工程

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

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

launch.json:

{ 
    ????"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 
    ????????????????} 
    ????????????] 
    ????????} 
    ????] 
    }

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

到此这篇关于Rust之Cargo构建、运行、调试的文章就介绍到这了,更多相关Rust Cargo构建内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • 如何使用Rust写个猜数字游戏

    如何使用Rust写个猜数字游戏

    这篇文章主要介绍了Rust写个猜数字游戏,本项目通过动手实践,介绍了Rust新概念:let、match、函数、使用外部 crate 等,接下来的文章,你会继续深入学习这些概念,并且介绍大部分编程语言都有的概念,如变量、数据类型和函数,以及如何在 Rust 中使用它们,需要的朋友可以参考下
    2023-12-12
  • 详解rust?自动化测试、迭代器与闭包、智能指针、无畏并发

    详解rust?自动化测试、迭代器与闭包、智能指针、无畏并发

    这篇文章主要介绍了rust?自动化测试、迭代器与闭包、智能指针、无畏并发,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11
  • Rust中的Vector多值存储使用方法

    Rust中的Vector多值存储使用方法

    Vector在Rust中是一个非常灵活和强大的数据结构,通过有效利用它,我们可以更加方便地处理和操作多个值,使得代码更加清晰和易于维护,这篇文章主要介绍了Rust中的Vector多值存储的利器,需要的朋友可以参考下
    2024-02-02
  • Rust中的关联类型总结

    Rust中的关联类型总结

    关联类型是定义通用trait的一种机制。它允许在trait中定义一个或多个占位符类型,这些类型将在trait的实现中具体化。文中有详细示例代码供参考,需要的朋友可以阅读一下
    2023-05-05
  • Rust 入门之函数和注释实例详解

    Rust 入门之函数和注释实例详解

    这篇文章主要为大家介绍了Rust 入门之函数和注释实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 如何使用VSCode配置Rust开发环境(Rust新手教程)

    如何使用VSCode配置Rust开发环境(Rust新手教程)

    这篇文章主要介绍了如何使用VSCode配置Rust开发环境(Rust新手教程),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Rust读取配置文件的实现

    Rust读取配置文件的实现

    本文主要介绍了Rust读取配置文件的实现,主要读取Cargo.toml文件,读取.env文件和读取自定义toml文件这三种,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Rust处理命令行参数

    Rust处理命令行参数

    在Rust中,命令行参数是程序从命令行接收的输入,它们为程序提供了运行时配置和数据的灵活性,本文就来介绍一下Rust处理命令行参数,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Rust中泛型的学习笔记

    Rust中泛型的学习笔记

    在Rust语言中,泛型是一种强大的工具,它允许我们编写可复用且灵活的代码,本文主要介绍了Rust中泛型的学习笔记,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Rust?中?Deref?Coercion讲解

    Rust?中?Deref?Coercion讲解

    Rust 的设计理念一向是显式比隐式好,也就是说所有的行为尽量在代码中表现出来,这篇文章主要介绍了Rust?中?Deref?Coercion?介绍,需要的朋友可以参考下
    2022-10-10

最新评论

?


http://www.vxiaotou.com