我成功地将 .c
文件与 Rust ( see this answer ) 结合使用。如何链接多个 .c
文件?我已经尝试过 #![link_args="/c_src/*.c"]
但没有成功。
- rust-demo
- src
- c_src
- file1.c
- file2.c
- etc...
- main.rs
编辑:
我认为一个更好的问题是,我怎样才能简单地将 C 源代码放在我的 Rust 目录中并通过使用 Rust 的 link
属性和 extern
直接开始使用它(或任何其他方式)考虑到上述示例?
how can I simply drop the C source code in my Rust directory and start using it directly by using Rust's link
attribute & extern
(or any other way)
您不能只是将 C 代码放入 Rust 源代码中并期望它能够运行。正如您在其他问题的评论中所说,语法 #![link_args="foo.c"]
从未计划工作,您不应该依赖它。
Rust 代码唯一可以链接的东西(其他 Rust 代码除外)是编译库(静态或动态)。在能够从 Rust 代码中调用它们之前,您需要将 C 文件编译成一个或多个库。
这样做的正确方法是在 Cargo.toml
的 [package]
部分添加一个 build
参数,这样您就可以调用一个 makefile,它首先将您的 C 文件构建到一个静态库中,然后将您的 Rust 代码链接到它。
cargo 网站上提供了所有详细信息:http://doc.crates.io/build-script.html