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

时间:2017-10-05 07:51:26

标签: build rust rust-cargo

有没有办法使用Cargo进行构建,为开发和发布配置设置不同的目标名称?例如,rustlibd.a和rustlib.a?

1 个答案:

答案 0 :(得分:3)

没有。调试与发布信息由配置文件控制。你可以看到all the profile-related manifest keys in the source code。我看到的唯一相关的是rustc_options。以详细模式运行构建,您可以看到货物如何调用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