返回介绍

编译

发布于 2024-10-13 11:25:33 字数 2676 浏览 0 评论 0 收藏 0

直接使用 rustc 编译器,或使用 cargo 构建工具。

rustc

编译器只接受 crate root 作为输入文件。

$ rustc [OPTIONS] INPUT
  • --crate-type : 编译类型。(lib,bin)
  • --crate-name :
  • --edition : 版本。(2015,2018,2021)
  • -g : 生成调试信息。
  • -O : 优化代码。( -C opt-level=2
  • -o : 输出文件名。
  • -v : 详细输出。

优化等级:

0: 不优化。

1: 基础优化。

2: 标准优化。

3: 深度优化。(all)

s: 优化尺寸。(size)

z: 优化尺寸,关闭循环矢量化。

cargo

整合工具链,可完成如下工作:

  • 项目管理。
  • 依赖管理。
  • 源码编译。
$ cargo [+toolchain] [OPTIONS] [SUBCOMMAND]
  • new : 创建新包。
  • --bin : 使用 binray 模版。
  • --lib : 使用 library 模版。
  • --name : 包名。(默认使用目录名)
  • init : 将现有目录初始化为包。
  • check, c : 分析并报告错误,不生成目标文件。
  • clippy : 静态代码检查(lint)。
  • run, r : 运行包。
  • --bin <name> : 指定 bin 目标。
  • --package <spec> : 指定 package 目标。
  • --release : 发布版本。
  • build, b : 编译。
  • -v : 输出 rustc 详细信息。
  • --workspace : 编译工作空间下的所有包。
  • --exclude <spec> : 编译时忽略指定包。
  • --lib : 仅编译 library。
  • --bin <name> : 仅编译指定 binary。
  • --bins : 编译所有 binary。
  • --release : 编译优化过的发布版本。
  • test, t : 运行测试。
  • bench : 运行基准测试。
  • clean : 清除 target 目录。
  • doc : 生成包和依赖文档。
  • update : 更新依赖项。
  • search : 搜索包。(crate.io)
  • publish : 发布包。(crate.io)
  • --verbose, -v : 输出详细编译参数信息。

Cargo.lock 记录依赖包详细信息。

Cargo.toml 记录详细配置信息,包括第三方依赖。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文