在 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 documentation,rustflags
属性 是通过 .cargo/config.toml
记录的,而不是 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 documentation,rustflags
属性 是通过 .cargo/config.toml
记录的,而不是 Cargo.toml
。