3 个版本 (重大变更)
使用旧的 Rust 2015
0.3.0 | 2016 年 7 月 4 日 |
---|---|
0.2.0 | 2016 年 7 月 1 日 |
0.1.0 | 2016 年 7 月 1 日 |
#1966 在 开发工具
每月 49 次下载
24KB
375 行
是否曾在 cargo 构建脚本中想要构建“原生”汇编代码,但 gcc crate 还无法完全处理?欢迎使用 llvm_build_utils,它提供了一个方便的 API,可以将你的 LLVM-IR 或 LLVM 字节码文件打包成包含机器代码的可用存档!它甚至不需要安装 LLVM,并且适用于稳定 Rust¹!
不过目前还没有支持 MSVC Windows
¹: 可能在不同版本之间或与 Rust 的某些版本不兼容。我们将在下表中尝试记录此类中断。
兼容性表格
Rustc 版本 | 本库 |
---|---|
1.8-1.11 | 0.1-0.2 |
使用 llvm_build_utils
首先,您需要为您的 crate 添加一个构建脚本(build.rs
),并通过以下方式将其添加到 Cargo.toml
:
[package]
# ...
build = "build.rs"
[build-dependencies]
llvm_build_utils = "0.3"
然后编写您的 build.rs
如下所示
extern crate llvm_build_utils;
use llvm_build_utils::*;
fn main() {
build_archive("libyourthing.a", &[
("input.ll", BuildOptions {
..BuildOptions::default() // customise how the file is built
})
]).expect("error happened").print();
}
运行 cargo build
应该会产生 libyourthing.a
,然后可以将其链接到您的 Rust 可执行文件/库。
许可协议
llvm_build_utils 以您的选择在 ISC(类似 MIT)或 Apache(版本 2.0)许可下分发。
依赖项
~2.5MB
~48K SLoC