4

我正在尝试将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 not found 消息。

任何示例或帮助将不胜感激。

4

2 回答 2

2

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

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

于 2013-04-11T18:15:23.087 回答
0

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

dmd main.d glfw.d

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

于 2013-04-11T17:14:31.003 回答