代码之家  ›  专栏  ›  技术社区  ›  Taco de Wolff

为现有C库编写D(D2)绑定

  •  6
  • Taco de Wolff  · 技术社区  · 16 年前

    我真的很想进入d,但缺乏良好的图书馆支持真的阻碍了我。因此,我想为我想使用的现有C库创建一些d绑定。我从来没有做过任何装订,但看起来也不太难。

    • 应该使用什么约定(我注意到版本语句、别名和常规常量/函数定义)?
    • 绑定到静态库(并因此链接到)或动态库之间有什么区别?装订有什么不同吗?
    • 对于绑定静态库,DMD编译器似乎不接受.a或.o文件,只接受.lib和.obj文件。这是否意味着这些库必须用DMC编译器(而不是GCC编译器)编译,然后通过DMD编译器链接?

    如果有人有一个非常简短的例子,说明如何完成一个绑定,我会非常充分。目前,我可以用DMC编译C代码,链接对象文件并从D中的C代码运行函数。然而,大多数C库只需要包含一个头文件,需要在C中进行链接。我不确定如何使绑定工作,为这。。。

    谢谢!

    2 回复  |  直到 16 年前
        1
  •  4
  •   dsimcha    16 年前

    需要注意的几点:

    1. const , immutable enum version 用于条件编译的语句,以及用于宏函数的常规(可能是模板化的)函数。

    举个例子来说,一个值得关注的地方是德伦蒂姆, which contains bindings for the entire C standard library.

        2
  •  1
  •   Prof. Falken    15 年前

    你可以看看阿尔达克龙是怎么处理的 Derelict2