我真的想进一步深入研究D,但缺乏良好的库支持实际上阻碍了我。因此,我想为我想要使用的现有C库创建一些D绑定。我从来没有做过任何绑定,但它也不太难。为现有的C库编写一个D(D2)绑定
我打算为D2做这个(不是特别的D1,但如果它可能是两个,甚至更好)。我正在使用DMD2编译器。
- 什么约定应该使用(我注意到版本声明,别名和常规常量/函数定义)?
- 绑定到静态库(从而链接到)或动态库之间会有什么区别?绑定有任何区别吗?
- 对于绑定静态库,DMD编译器似乎不接受.a或.o文件,只有.lib和.obj。这是否意味着库必须使用DMC编译器进行编译(而不是GCC编译器),然后通过DMD编译器进行链接?
如果有人有一个如何完成绑定的很短的例子,我会很满。目前,我可以使用DMC编译C代码,链接目标文件并从D代码中的C代码运行函数。但是,大多数C库只需要包含头文件并需要与C链接。我不确定如何制作绑定工作...
谢谢!
Windows? ______ – kennytm 2010-09-04 15:59:14
是的,Windows(x86)。尽管我的目标是在可能的情况下使事物变得可移动...... – 2010-09-04 16:08:02
出于好奇,您希望移植哪些库? – 2010-09-04 19:30:02