如果您编写Rust库并且想要从C调用它,则必须使用extern C标记所有导出函数,并确保所有内容都使用C ABI。但是,您还必须手动编写头文件以包含在C代码中,并手动确保它与Rust定义一致,否则将发生坏事。这似乎既危险又乏味。
是否有用于从Rust代码生成C头的工具?我已经看到了另一种方式的绑定,因为使用Rust的C,这实际上是一个更难的问题!
答案 0 :(得分:4)
答案 1 :(得分:4)
需要使用它才能解决问题,但yes。
答案 2 :(得分:1)
https://github.com/eqrion/cbindgen/是一种更新的方法,在撰写本文时似乎一直在积极维护。 @hcs接受的答案链接到GitHub问题,该问题说应该由外部工具解决。