私のプロジェクトのバイナリの代わりにLLVM-IRを発行するにはどうすればよいですか? rustc
に--emit=llvm-ir
フラグを使用できますが、貨物に任意のコンパイラフラグを渡すことは不可能であることを示すいくつかのGithubの問題を読んでいます。貨物からLLVM-IRを放出する方法
LLVM-IRを直接排出する方法はありますか?
私のプロジェクトのバイナリの代わりにLLVM-IRを発行するにはどうすればよいですか? rustc
に--emit=llvm-ir
フラグを使用できますが、貨物に任意のコンパイラフラグを渡すことは不可能であることを示すいくつかのGithubの問題を読んでいます。貨物からLLVM-IRを放出する方法
LLVM-IRを直接排出する方法はありますか?
カーゴを介して任意のコンパイラフラグをrustc
に渡すためのcargo rustc
があります。だから私は思う:
cargo rustc -- --emit=llvm-ir
あなたは何をしたいですか?
編集:代わりにJacobの答えを使用する必要があります。はるかに簡単で、よりハッキリではありません。
通常は貨物でプロジェクトをビルドしますが、詳細出力を表示するには-v
フラグを追加してください。コマンドは出力を生成しません場合、それはの変化を検出した場合、それだけで再構築されますから、それを再構築にコンパイラをだまして、プロジェクトのコードのどこかに変更を加える
[email protected]:~/Documents/project$ cargo build -v
Fresh aster v0.22.1
Fresh num-traits v0.1.34
Fresh itoa v0.1.1
...
Compiling project v0.1.0 (file:///home/casey/Documents/project)
Running `rustc src/main.rs --crate-name ...`
Finished debug [unoptimized + debuginfo] target(s) in 3.54 secs
:コマンドは、このような結果になりますファイルの1つ。
rustc
コマンドを「Running`s rustc ...」で始まる行のマーカーの中からコピーし、--emit=llvm-ir
を追加します。
これは/ target/debugフォルダに.llファイルを生成します。
これは[代替プレイグランドで使用する](https://github.com/integer32llc/rust-playground/blob/374c47f24b581f062bfec1de7e5e2dba1c23e9ad/ui/src/sandbox.rs#L234)です。 – Shepmaster