【发布时间】:2016-03-31 11:32:42
【问题描述】:
我正在尝试在 windows 上链接 glfw。
在 Linux 上这相当简单:
dependency "derelict-glfw3" version="~>2.0.0"
subConfiguration "derelict-glfw3" "derelict-glfw3-static"
sourceFiles "deps/glfw/build/src/libglfw3.a" platform="posix"
libs"Xi" "pthread" "X11" "Xxf86vm" "Xrandr" "pthread" "GL" "GLU" "Xinerama" "Xcursor" platform="posix"
如果我尝试在 Windows 上链接 .dll,dub 会告诉我 Error: unrecognized file extension dll.
dependency "derelict-glfw3" version="~>2.0.0"
subConfiguration "derelict-glfw3" "derelict-glfw3-static"
sourceFiles "deps\\glfw\\build\\src\\Debug\\glfw3.dll" platform="windows"
如果我尝试链接 .lib,dub 会告诉我 COFF is not supported。
dependency "derelict-glfw3" version="~>2.0.0"
subConfiguration "derelict-glfw3" "derelict-glfw3-static"
sourceFiles "deps\\glfw\\build\\src\\Debug\\glfw3.lib" platform="windows"
GLFW 是用 vs2013 构建的。我有什么不同的做法?
【问题讨论】:
-
尝试用
dflags "-m64"或dflags "-m32mscoff"编译它 -
-m32mscoff会导致我的 D 代码出现大量链接器错误,-m64会导致内部编译器错误。我猜这是因为 .lib 是为 32 位构建的。 -
不,我刚刚还从 glfw 站点尝试了一个 64 位预构建的 .lib,我还收到了一个内部编译器错误。
-
如果你得到一个 ICE(内部编译器错误),做一个最小化的测试用例(dustmite 可以帮助解决这个问题)并报告它!那不应该发生。