连接glfw和D

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拖到主目录并使用-L编译器标志链接到glfw.lib时,我也遇到了找不到符号的问题。
非常感谢您提供任何示例或帮助。

你需要在导入目录中(使用 -I 开关指定)一些 d 或 di 文件。 - ratchet freak
2个回答

2

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

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


0

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

dmd main.d glfw.d

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接