Rust Cargo build e crosscompile para CPU específica
Quero compilar dois binários para diferentes arquiteturas de destino (por exemplo, Skylake e Sandy Bridge). Normalmente, são dois comandos de carga longos:
RUSTFLAGS = "- C target-cpu = skylake" build de carga --target x86_64-unknown-linux-gnu --release
Como posso configurar o cargo para construir ambos os binários (com nomes diferentes) do mesmo main.rs automaticamente? Idealmente no config.tomlou no Cargo.tomlpara que eu possa adicioná-lo a um repositório.
Respostas
Você pode adicionar o seguinte texto ao seu config.toml:
[build]
target = x86_64-unknown-linux-gnu
rustflags = ["-C","target-cpu=skylake"]
[profile.dev] #do not need to add `--release` now
opt-level = 3
debug = false
debug-assertions = false
overflow-checks = false
lto = false
panic = 'unwind'
incremental = false
codegen-units = 16
rpath = false
Mas parece que ele não pode compilar para duas arquiteturas de destino diferentes com uma config.toml, então você pode ter que criar duas config.tomle usar cargo --manifest-path PATH/TO/CONFIGpara compilar dois binários separadamente.