Cargo 是 Rust 的构建系统和包管理工具,同时 Rustacean 们使用 Cargo 来管理它们的 Rust 项目。Cargo 负责三个工作:构建你的代码,下载你代码依赖的库并编译这
些库。我们把你代码需要的库叫做“依赖(dependencies)”因为你的代码依赖他们。
  官方安装包的话,Rust 自带 Cargo

Cargo安装

  rust官方安装包自带Cargo,在终端检查你是否安装了 Cargo:

cargo --version

Cargo工程创建

  1、创建工程目录(例如/home目录下创建)

mkdir  projects

  2、进入/home/projects目录,然后新建Cargo工程

cd /home/projects/
cargo new hello_world --bin

  这个命令传递了 --bin 参数因为我们的目标是直接创建一个可执行程序,而不是一个库。Cargo 为我们创建了两个文件和一个目录:一个 Cargo.toml  (该文件首字母C 必须大写,同时该文件必须与src放置于同级目录,否则运行报错) 和一个包含了 main.rs 文件的 src 目录。

关于Cargo.toml:确保 Cargo.toml 的 C 是大写的,否则 Cargo 不知道如何处理配置文件。这个文件使用TOML(Tom's Obvious, Minimal Language)格式。 TOML 类似于INI,不过有一些额外的改进之处,并且被用作 Cargo 的配置文件。

  3、编译(cargo build)

#cd hello_world/
#cargo build
Compiling hello_world v0.1.0 (/home/projects/hello_world)
Finished dev [unoptimized + debuginfo] target(s) in .43s

  4、运行(cargo run)

# cargo run
Finished dev [unoptimized + debuginfo] target(s) in .02s
Running `target/debug/hello_world`
Hello, world!

  5、发布构建(cargo build --release )

  你的项目准备好发布了,可以使用 cargo build --release 来优化编译项目。这些优化可以让 Rust 代码运行的更快,不过启用他们会让程序花更长的时间编译。这也是为何这是两种不同的配置,一个为了开发,另一个构建提供给用户的最终程序。

# cargo build --release
Finished release [optimized] target(s) in .01s
# ls
Cargo.lock Cargo.toml src target

  运行完成后发现会生成Cargo.lock 文件以及target目录,Cargo 用 Cargo.lock 文件跟踪你程序的依赖。这里是 Hello World 项目的 Cargo.lock 文件。这个项目并没有依赖,所以内容有一点稀少。事实上,你自己甚至都不需要碰这个文件;仅仅让 Cargo 处理它就行了。到了这一步,就已经成功使用 Cargo 构建了 hello_world 。

关于Cargo.toml配置内容将另外说明;

最新文章

  1. Binder In Native
  2. imageNamed和imageWithContentsOfFile区别
  3. LeetCode 168. Excel Sheet Column Title
  4. Android九宫格界面实现点击每个格点击跳转界面
  5. jumplist和changlist
  6. on the wane
  7. HDU 2196 树形DP Computer
  8. 修改UITextfield的Placeholder字体的颜色
  9. Linux 查看支持的语言,日期,时间,计算器
  10. SharePoint 2013 中将 HTML文件转换为母版页
  11. 在一个view类里面获取viewcontroller
  12. sql2012笔记
  13. layer.photos()异步修改图片地址后显示异常
  14. Python数据分析-知识宝藏
  15. JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
  16. ReSharper 自动选中
  17. BZOJ1066 [SCOI2007]蜥蜴 网络流 最大流 SAP
  18. YII实现restful,postman进行接口测试
  19. Codeforces Round #503 (by SIS, Div. 1)E. Raining season
  20. 贝尔金(Belkin)7231-4P tftp救砖

热门文章

  1. malloc和cmalloc
  2. 【Linux开发】【Qt开发】arm-linux-gnueabihf-gdb versus gdb-multiarch
  3. 第五周课程总结&实验报告(三)
  4. [转帖]IDC发布2018下半年中国公有云市场报告
  5. 由于;引发的Oracle的BadSqlExecption
  6. S-Nim HDU 1536 博弈 sg函数
  7. CF682C Alyona and the Tree
  8. [集合]Map的 entrySet() 详解以及用法(四种遍历map的方式)
  9. 高性能迷你React框架anujs1.1.3发布
  10. SCUT - 216 - 宝华科技树