1 个不稳定发布
使用旧的Rust 2015
0.1.9 | 2022年5月14日 |
---|
#13 in #gcc
27KB
657 行
状态:正常,v0.1.9
这是什么?
认识 c_rs
。它是已不再维护的项目的一个分支。
这个crate允许您在Rust中直接编写C代码。
需要GCC和rustc nightly!
那么我该如何使用它呢?
在Cargo.toml中指定
[build-dependencies.c_rs]
git = "https://github.com/mrMiiao/c_rs"
version = "*"
features = ["build"]
[dependencies.c_rs]
git = "https://github.com/mrMiiao/c_rs"
version = "*"
features = ["macro"]
并将此放入Build.rs
extern crate c_rs;
fn main()
{
c_rs::build("src/main.rs", "crate_name", |cfg|
{
// cfg is a gcc::Config object. You can use it to add additional
// configuration options to the invocation of the C compiler.
});
}
main.rs示例
extern crate c_rs;
use c_rs::c;
use c_rs::ctypes::_void;
c!{
#include <stdio.h>
raw{
void hello_world() {
puts("Hello, World!");
}
}
}
extern "C" {
fn hello_world() -> _void;
}
fn main() {
unsafe{
hello_world();
}
}
更多示例请见这里
目标
- 修复头文件链接错误
- 使用"crate"添加本地头文件支持
- 添加ctypes
依赖项
~0.7–1.1MB
~25K SLoC