build - 使用 Rust Cargo 进行构建的不同目标名称

标签 build rust rust-cargo

有没有办法为使用 Cargo 构建的开发和发布配置设置不同的目标名称?比如ruSTLibd.a和ruSTLib.a?

最佳答案

没有。调试与发布信息由配置文件 控制。可以看到all the profile-related manifest keys in the source code .我看到的唯一相关的是 rustc_options。以详细模式运行构建,你可以看到 cargo 如何调用 rustc:

$ cargo build --verbose
   Compiling namez v0.1.0 (file:///private/tmp/namez)
     Running `rustc --crate-name namez src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=5444c772a04e08f3 -C extra-filename=-5444c772a04e08f3 --out-dir /private/tmp/namez/target/debug/deps -L dependency=/private/tmp/namez/target/debug/deps`
    Finished dev [unoptimized + debuginfo] target(s) in 0.45 secs

不幸的是,改变 --crate-name 没有你想要的效果。


相反,我要指出的是您已经有一个不同的文件名,您只需要看起来更宽泛:

target/debug/libname.a
target/release/libname.a

调试和发布文件位于不同 目录中。无论您打算如何移动单独命名的库,都必须处理 debugrelease 目录无论如何。只需更新您的脚本:

mv target/debug/libname.a libnamed.a
mv target/release/libname.a libname.a

关于build - 使用 Rust Cargo 进行构建的不同目标名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46580535/

相关文章:

rust - 有没有办法防止发出的 LLVM IR 删除未使用的函数?

rust - 实例化 std::vec::IntoIter<i32> 时达到类型长度限制

rust - 如何对我的 Cargo.toml 的每个功能单独运行 cargo 检查/测试?

module - 如何将我的程序划分为模块?

ld - 带有 Rust 的可移植二进制文件

shared-libraries - 制作和使用 Rust 共享库的正确方法?

go - 是否有规范的方法将构建脚本添加到 Go 项目?

extjs - sencha 建筑师生产版本 : Uncaught TypeError: c is not a constructor

javascript - Webpack:大小超过建议的限制 (244 KiB)

visual-studio - 在 Visual Studio 2010 中捕获生成输出