我真的想進一步深入研究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