2013-04-11 56 views
4

我試圖在Digital Mars D編譯器版本2.0中使用glfw 2.7.8鏈接glfw和D

我按照示例makefile中的說明將.lib文件複製到dm/lib文件夾,但我沒有成功。

一個示例編譯看起來像這樣。

dmd main.d 

文件的來源是:

import std.string; 
import glfw; 
int main() 
{ 
    glfwInit(); 
    return 0; 
} 

我得到的輸出是

main.d(2): Error: module glfw is in file 'glfw.d' which cannot be read 
import path[0] = /usr/share/dmd/src/phobos 
import path[1] = /usr/share/dmd/src/druntime/import 

我已經在Windows 7和Mac OSX 10.8.2試過,但我有沒有成功。我應該將glfw.d編譯爲一個lib,然後將它放到我的主目錄中嗎?

當我嘗試將.lib放入主目錄並使用連接到glfw.lib的-L編譯器標誌時,我也有_symbol未找到messsages。

任何例子或幫助將不勝感激。

+0

您需要導入目錄中的某些d或di文件(使用-I開關IIRC指定) – 2013-04-11 18:01:54

回答

0

你需要傳遞glfw.d編譯器:

dmd main.d glfw.d 

假設它是在同一目錄main.d.

2

你需要用-L開關添加-Ipath/to/glfw-x.x.x/support/d/imports到編譯器指令

你也可以添加lib文件夾(用def文件),以便鏈接器能夠正確的符號映射到DLL暴露的那些