链接glfw和D.

时间:2013-04-11 16:50:21

标签: linker static-libraries d glfw

我正在尝试将glfw 2.7.8与Digital Mars D编译器版本2.0一起使用。

我按照示例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的消息。

非常感谢任何示例或帮助。

2 个答案:

答案 0 :(得分:2)

您需要将-Ipath/to/glfw-x.x.x/support/d/imports添加到编译器指令

您还可以使用-L开关添加lib文件夹(带有def文件),以便链接器可以将符号正确映射到dll中公开的符号

答案 1 :(得分:0)

您需要将glfw.d传递给编译器:

dmd main.d glfw.d

假设它与main.d。在同一目录中。