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

问题描述 投票:8回答:3

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

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

rust
3个回答
4
投票

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


更新:

正如@HameerAbbasi在下面所说,cbindgen是现在这样做的首选工具。


4
投票

它需要被使用,以便我可以解决扭结,但yes


1
投票

最近这样做的方法是https://github.com/eqrion/cbindgen/,在撰写本文时似乎积极维护。 @hcs接受的答案链接到GitHub问题,该问题表明这应该由外部工具解决。

© www.soinside.com 2019 - 2024. All rights reserved.