在 Cargo.toml 中将 Rust 链接到 LLVM API

Linking Rust to LLVM API in Cargo.toml

我正在使用包装 LLVM-C API (inkwell) 的库,所以我需要 link 我的 Rust 二进制文件到 LLVM 库。如果我导出以下生锈标志:

export RUSTFLAGS=-lLLVM-12 -lm -ldl -lc -lpthread -lutil -lgcc_s -C link-args=-L/usr/lib/llvm/12/lib64

然后编译运行正常。

但是,如果我将这些行插入到项目的 Cargo.toml 文件中:

[build]
rustflags = ["-lLLVM-12", "-lm","-ldl","-lc","-lpthread","-lutil","-lgcc_s", "-C", "link-args=-L/usr/lib/llvm/12/lib64"]

然后我得到 link针对 LLVM-C 函数的错误。

为什么这适用于环境变量但不适用于我的 cargo 配置文件?我是在以某种方式配置 cargo 吗?

根据 Cargo documentationrustflags 属性 是通过 .cargo/config.toml 记录的,而不是 Cargo.toml