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