2016-08-30 2 views
8

Хотя я видел документы об использовании rustc непосредственно для сборки вывода, необходимость вручную извлекать команды, используемые Cargo, и редактировать их для записи сборки, является утомительной.Как получить сборку сборки из Cargo?

Есть ли способ запустить Cargo, который записывает файлы сборки?

ответ

20

Вы можете использовать cargo rustc команду Cargo для отправки аргументы rustc непосредственно:

cargo rustc -- --emit asm 
ls target/debug/deps/crate_name.s 

Для оптимизированной сборки:

cargo rustc --release -- --emit asm 
ls target/release/deps/crate_name.s 
15

В дополнение к ответу kennytm, вы можете также использовать переменную RUSTFLAGS среды и использовать стандартные грузовые команды:

RUSTFLAGS="--emit asm" cargo build 
cat target/debug/deps/project_name-hash.s 

Или в режиме выпуска (с оптимизацией):

RUSTFLAGS="--emit asm" cargo build --release 
cat target/release/deps/project_name-hash.s 

Вы можете передать различные значения параметра --emit, включая (но не ограничиваясь ими):

  • mir (Rust промежуточное представление)
  • llvm-ir (промежуточное представление LLVM)
  • llvm-bc (LLVM byt e code)
  • asm (сборка)

 Смежные вопросы

  • Нет связанных вопросов^_^