2016-08-30 7 views
8

rustcを出力アセンブリに直接使用しているのを見てきましたが、Cargoで使用されているコマンドを手動で抽出してアセンブリを書き込むために編集するのは面倒です。貨物を使用した建物からのアセンブリ出力の取得方法?

アセンブリファイルを書き出すCargoを実行する方法はありますか?最適化されたアセンブリのために

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

を:あなたが直接rustcに引数を送信するために貨物のcargo rustcコマンドを使用することができます

答えて

20

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 

またはリリース(最適化あり)モードで:含めてあなたが--emitパラメータに異なる値を渡すことができ

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

は、(これらに限定されない):

  • mir(錆中間表現) (LLVM中間表現)
  • llvm-ir eコード)
  • asm(アセンブリ)