我真的很想深入了解 D,但缺乏良好的库支持确实阻碍了我。因此,我想为我想使用的现有 C 库创建一些 D 绑定。我从来没有做过任何绑定,但它看起来也不是太难。
我打算为 D2 做这个(不是专门为 D1 做的,但如果两者都适用,那就更好了)。我正在使用 DMD2 编译器。
- 应该使用哪些约定(我注意到版本语句、别名和常规常量/函数定义)?
- 绑定到静态库(并因此链接到)或动态库之间有什么区别?绑定有区别吗?
- 对于绑定静态库,DMD 编译器似乎不接受 .a 或 .o 文件,只接受 .lib 和 .obj。这是否意味着这些库必须使用 DMC 编译器(而不是 GCC 编译器)编译,然后通过 DMD 编译器链接?
如果有人有一个非常简短的例子来说明如何完成绑定,我会非常满意。目前我可以用 DMC 编译 C 代码,链接目标文件并从 D 中的 C 代码运行函数。但是,大多数 C 库只需要包含头文件并且需要在 C 中链接。我不确定如何制作为此工作的绑定......
谢谢!