如何让 cargo 生成 LLVM-IR 而非二进制文件呢? 我知道可以在 rustc
中使用 --emit=llvm-ir
标志,但我读过一些 Github 的问题,显示无法将任意编译器标志传递给 cargo。
有没有办法让 cargo 直接输出 LLVM-IR 呢?
如何让 cargo 生成 LLVM-IR 而非二进制文件呢? 我知道可以在 rustc
中使用 --emit=llvm-ir
标志,但我读过一些 Github 的问题,显示无法将任意编译器标志传递给 cargo。
有没有办法让 cargo 直接输出 LLVM-IR 呢?
可以使用通过Cargo向传递任意编译器标志。因此我认为:
cargo rustc -- --emit=llvm-ir
这就是你想要的!
这将在 target\debug\deps\
目录下生成一个 ll
文件。
编辑:您应该使用Jacob的答案,更加简单和不那么hacky。
正常使用cargo构建项目,但添加-v
标志以显示详细输出。 命令将具有以下结果:
casey@casey-ubuntu:~/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