#abi #cbindgen #cglue #ffi

app cglue-bindgen

清理CGlue的cbindgen头文件

6个版本

0.3.0 2024年7月27日
0.2.3 2023年6月23日
0.2.2 2021年12月19日
0.2.1 2021年11月26日
0.1.0 2021年6月21日

407文本处理

Download history 192/week @ 2024-07-27 3/week @ 2024-08-03

每月下载量 195

MIT 许可证

81KB
2K SLoC

cglue-bindgen

清理cbindgen输出以供CGlue使用。

此crate本质上封装了cbindgen,并执行额外的头文件清理步骤,以便于直接使用。请注意,程序期望标准命名约定,如果cbindgen配置中发生任何重命名,则可能无法正常工作。

安装

cargo install cglue-bindgen

确保已安装cbindgen

cargo install cbindgen

运行

类似于cbindgen运行

cglue-bindgen +nightly -- --config cbindgen.toml --crate your_crate --output output_header.h

配置

创建一个cglue.toml文件,并在运行cglue-bindgen之前传递-c cglue.toml

可以设置几个值

default_container - 设置默认容器类型。这将使C/C++代码对匹配容器和上下文类型的对象更简洁。支持开箱即用的:BoxMutRef

default_context - 设置默认上下文类型。这将使C/C++代码对匹配容器和上下文类型的对象更简洁。支持开箱即用的:ArcNoContext

使用绑定

请参阅相应语言的文档

您还可以查看代码示例

遇到问题时

请检查是否有任何自定义cbindgen选项以任何方式影响代码生成。此crate非常挑剔,例如,即使更改文档样式也可能破坏代码生成。

如果您在没有自定义参数的情况下仍然遇到问题,请报告问题,因为这很可能是我的错误或cbindgen更新破坏了绑定生成。

已验证可正常工作的cbindgen版本:v0.20.0

依赖项

~3–5MB
~88K SLoC