Rust 调用Cargo build时,是否可以从命令行覆盖Cargo.toml中指定的板条箱类型?

Rust 调用Cargo build时,是否可以从命令行覆盖Cargo.toml中指定的板条箱类型?,rust,rust-cargo,Rust,Rust Cargo,我想从我不维护的Rust项目生成一个静态库。该项目允许构建动态库-Cargo.toml指定板条箱类型=[“cdylib”] 修改文件中的板条箱类型是可行的,但如果可能的话,我希望将未修改的原始项目保留为项目中的git子模块 是否有任何标志可以传递到货物构建命令以覆盖此设置?您不能覆盖它,但可以对其进行补充。使用并直接将--cratetype=staticlib传递给编译器: %cargo build 编译示例v0.1.0(/private/tmp/example) 在0.31秒内完成开发[未优化

我想从我不维护的Rust项目生成一个静态库。该项目允许构建动态库-Cargo.toml指定
板条箱类型=[“cdylib”]

修改文件中的板条箱类型是可行的,但如果可能的话,我希望将未修改的原始项目保留为项目中的git子模块


是否有任何标志可以传递到
货物构建
命令以覆盖此设置?

您不能覆盖它,但可以对其进行补充。使用并直接将
--cratetype=staticlib
传递给编译器:

%cargo build
编译示例v0.1.0(/private/tmp/example)
在0.31秒内完成开发[未优化+调试信息]目标
%查找目标-名称“*.a”
%货物锈蚀--板条箱类型=staticlib
编译示例v0.1.0(/private/tmp/example)
在0.29秒内完成开发[未优化+调试信息]目标
%查找目标-名称“*.a”
target/debug/deps/libexample.a

您不能覆盖它,但可以对其进行补充。使用并直接将
--cratetype=staticlib
传递给编译器:

%cargo build
编译示例v0.1.0(/private/tmp/example)
在0.31秒内完成开发[未优化+调试信息]目标
%查找目标-名称“*.a”
%货物锈蚀--板条箱类型=staticlib
编译示例v0.1.0(/private/tmp/example)
在0.29秒内完成开发[未优化+调试信息]目标
%查找目标-名称“*.a”
target/debug/deps/libexample.a

您可以提供
板条箱类型
,但不能覆盖
货物中指定的类型。toml

$cargo rustc--crater type=staticlib
编译示例v0.1.0(/dev/tmp)
在0.34秒内完成开发[未优化+调试信息]目标
有一个添加了
--板条箱类型
覆盖的。同时,解决办法是使用:

$cargo安装货物板条箱类型
$货箱型静态
$cargo build

请注意,此命令将更改您的
货物。toml
您可以提供
板条箱类型,但不能覆盖您在
货物中指定的类型。toml

$cargo rustc--crater type=staticlib
编译示例v0.1.0(/dev/tmp)
在0.34秒内完成开发[未优化+调试信息]目标
有一个添加了
--板条箱类型
覆盖的。同时,解决办法是使用:

$cargo安装货物板条箱类型
$货箱型静态
$cargo build

请注意,此命令将更改您的
Cargo.toml

谢谢。首先,这对我来说是可行的(我实际上调用了
cargo-rustc--release--cratetype=staticlib
现在),我在target/release/deps中找到了静态库。不过我必须承认,作为一个没有锈迹经验的C++程序员,我不确定这个调用实际上是做什么还是不做什么,与<代码>货物构建< /代码>形成对比?除了考虑我传递给它的板条箱类型外,它还会使用
Cargo.toml
来计算我现在可能完全理解或不完全理解的依赖项和其他设置吗?为什么我现在可以在不同的目标文件夹中找到生成的库?@PluginPenguin我已经添加了一个指向
cargo-rustc
文档的链接。TL;DR-您可以使用它将更多标志传递给Cargo将生成的
rustc
的最终调用。是的,依赖关系仍将受到尊重。我不完全理解为什么输出仍然保留在
deps
目录中,但我认为Cargo总是构建在那里,然后链接/复制到“预期”的输出位置。这一份跳过了,谢谢。首先,这对我来说是可行的(我实际上调用了
cargo-rustc--release--cratetype=staticlib
现在),我在target/release/deps中找到了静态库。不过我必须承认,作为一个没有锈迹经验的C++程序员,我不确定这个调用实际上是做什么还是不做什么,与<代码>货物构建< /代码>形成对比?除了考虑我传递给它的板条箱类型外,它还会使用
Cargo.toml
来计算我现在可能完全理解或不完全理解的依赖项和其他设置吗?为什么我现在可以在不同的目标文件夹中找到生成的库?@PluginPenguin我已经添加了一个指向
cargo-rustc
文档的链接。TL;DR-您可以使用它将更多标志传递给Cargo将生成的
rustc
的最终调用。是的,依赖关系仍将受到尊重。我不完全理解为什么输出仍然保留在
deps
目录中,但我认为Cargo总是构建在那里,然后链接/复制到“预期”的输出位置。此处跳过该副本。