我成功使用带有Rust(see this answer)的.c
文件。如何链接多个.c
文件?我已经尝试#![link_args="/c_src/*.c"]
而没有运气。
- rust-demo
- src
- c_src
- file1.c
- file2.c
- etc...
- main.rs
编辑:
我认为更好的问题是,我怎样才能简单地将C源代码放在Rust目录中,并使用Rust的link
属性&考虑到上面的例子extern
(或任何其他方式)?
答案 0 :(得分:3)
如何简单地将C源代码放入Rust目录中,并使用Rust的
link
属性&amp ;,直接开始使用它。extern
(或任何其他方式)
您不能只将C代码放入Rust源代码并期望它能够正常工作。正如您在其他问题的评论中所述,语法#![link_args="foo.c"]
从未被计划起作用,您不应该依赖它。
唯一可以链接Rust代码(除了其他生锈代码)是一个编译库(静态或动态)。您需要将C文件编译成一个或多个库,然后才能从Rust代码中调用它们。
这样做的正确方法是在build
的{{1}}部分添加[package]
参数,因此可以调用首先将C文件构建为静态的makefile库,然后将您的Rust代码链接到它。
所有详情均在货运网站上提供:http://doc.crates.io/build-script.html
答案 1 :(得分:1)
假设您正在使用Cargo,请使用build = ["gcc ..."]
添加某种脚本以将其构建到适当的库中,然后您只需要在#[link_args]
中指定一件事