OS X上被忽略的T3 D绑定
我只想用GLFW3 D绑定做一个小测试。 我使用OS X上被忽略的T3 D绑定,d,derelict3,D,Derelict3,我只想用GLFW3 D绑定做一个小测试。 我使用 dub init glfw3Test 然后我在glfw3Test\source\app.d中编写了一个小测试 import derelict.glfw3.glfw3; void main() { // Load the GLFW 3 library. DerelictGLFW3.load(); if(DerelictGLFW3.isLoaded) { // Do something cool!
dub init glfw3Test
然后我在glfw3Test\source\app.d中编写了一个小测试
import derelict.glfw3.glfw3;
void main()
{
// Load the GLFW 3 library.
DerelictGLFW3.load();
if(DerelictGLFW3.isLoaded)
{
// Do something cool!
}
}
我用以下内容修改了默认JSON:
{
"name": "glfw3Test",
"dependencies":
{
"derelict-glfw3": "~master"
},
"configurations": [
{
"name": "glfw3Test",
"targetType": "executable"
}
]
}
我使用dub build
构建,一切都很顺利,但是当我尝试启动可执行文件时,我遇到了以下错误:
derelict.util.exception.SharedLibLoadException@../../../.dub/packages/derelict-util-1.0.2/source/derelict/util/exception.d(35): Failed to load one or more shared libraries:
libglfw.3.dylib - dlopen(libglfw.3.dylib, 2): image not found
libglfw3.dylib - dlopen(libglfw3.dylib, 2): image not found
我也尝试过在不使用DUB的情况下手动编译我的应用程序,但我总是遇到同样的问题
它似乎在寻找GLFW3共享库,但我认为该库是由构建过程静态链接的
我在OS X 10.10上安装了Xcode 6(DMD编译器2.065)我注意到GLFW3的默认生成过程(使用cmake)不会创建动态库文件。因此,我使用以下选项重建了GLFW:
cmake -D BUILD_SHARED_LIBS=ON
然后我做了一个makeinstall
,所以现在libglfw.dylib文件正确地安装在/usr/local/lib中
感谢@duselbaer让我注意到了这个问题。好吧,它不一定要在链接时知道libglfw3.dylib。还可以使用dlopen()在运行时加载此文件,这就是它的外观。您的系统上有libglfw3.dylib还是libglfw.3.dylib?(Macports知道这一点,所以“sudo-port-install-glfw”也许可以)你是对的。我没有注意到手动构建GLFW3(使用cmake)默认情况下只构建libglfw3.a,因此添加选项“-D build_SHARED_LIBS=ON”构建GLFW3它也构建了动态库!非常感谢。