链接glfw和D.

nodio 发布于 2019-03-09 d 最后更新 2019-03-09 14:42 0 浏览

我试图在Digital Mars D编译器版本2.0中使用glfw 2.7.8。 我按照示例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。 任何例子或帮助将不胜感激。
已邀请:

matque

赞同来自:

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

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

rquis

赞同来自:

您需要将-Ipath/to/glfw-x.x.x/support/d/imports添加到编译器指令中 您还可以使用-L开关添加lib文件夹(带有def文件),以便链接器可以将符号正确映射到dll中公开的符号