Rust Cargo build e crosscompile per CPU specifiche
Voglio compilare due binari per differenti architetture di destinazione (es. Skylake e Sandy Bridge). Di solito si tratta di due lunghi comandi di carico:
RUSTFLAGS = "- C target-cpu = skylake" cargo build --target x86_64-unknown-linux-gnu --release
Come posso impostare cargo per costruire automaticamente entrambi i binari (con nomi diversi) dallo stesso main.rs? Idealmente in config.tomlo in Cargo.tomlmodo da poterlo aggiungere a un repository.
Risposte
Puoi aggiungere il seguente testo al tuo 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
Ma sembra che non sia possibile compilare per due diverse architetture di destinazione con una config.toml, quindi potrebbe essere necessario crearne due config.tomle utilizzarle cargo --manifest-path PATH/TO/CONFIGper compilare due binari separatamente.