2013-04-11 58 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暴露的那些