Cargo build --verbose --target=i686-linux-android 使得 target_os 而不是 android,为什么?
Cargo build --verbose --target=i686-linux-android makes target_os NOT android, why?
如果我用
构建我的项目
cargo build --verbose --target=i686-linux-android
其中 build.rs
看起来像这样
fn main() {
#[cfg(target_os = "linux")]
{
panic!("target_os is linux!!!!!!!!!!!!!");
}
我在 panic!("target_os is linux!!!!!!!!!!!!!");
处感到恐慌,但目标是 android。
为什么?
build.rs
脚本被编译并且 运行 本地 因此它的 #[cfg(...)]
属性将反映 local系统。如果您想知道您最终要构建的操作系统,请使用 CARGO_CFG_TARGET_OS
环境变量。
其他的可以在Environment variables Cargo sets for build scripts中的Rust Reference中看到。
如果我用
构建我的项目cargo build --verbose --target=i686-linux-android
其中 build.rs
看起来像这样
fn main() {
#[cfg(target_os = "linux")]
{
panic!("target_os is linux!!!!!!!!!!!!!");
}
我在 panic!("target_os is linux!!!!!!!!!!!!!");
处感到恐慌,但目标是 android。
为什么?
build.rs
脚本被编译并且 运行 本地 因此它的 #[cfg(...)]
属性将反映 local系统。如果您想知道您最终要构建的操作系统,请使用 CARGO_CFG_TARGET_OS
环境变量。
其他的可以在Environment variables Cargo sets for build scripts中的Rust Reference中看到。