是否有用于从Rust模块生成C头的工具?

时间:2014-10-30 03:20:52

标签: rust

如果您编写Rust库并且想要从C调用它,则必须使用extern C标记所有导出函数,并确保所有内容都使用C ABI。但是,您还必须手动编写头文件以包含在C代码中,并手动确保它与Rust定义一致,否则将发生坏事。这似乎既危险又乏味。

是否有用于从Rust代码生成C头的工具?我已经看到了另一种方式的绑定,因为使用Rust的C,这实际上是一个更难的问题!

3 个答案:

答案 0 :(得分:4)

看起来这是a requested feature for Rust,但我还没有找到任何实现。


<强>更新

正如下面@HameerAbbasi所述,cbindgen是现在执行此操作的首选工具。

答案 1 :(得分:4)

需要使用它才能解决问题,但yes

答案 2 :(得分:1)

https://github.com/eqrion/cbindgen/是一种更新的方法,在撰写本文时似乎一直在积极维护。 @hcs接受的答案链接到GitHub问题,该问题说应该由外部工具解决。