Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OS X上被忽略的T3 D绑定_D_Derelict3 - Fatal编程技术网

OS X上被忽略的T3 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!

我只想用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!

    }
}
我用以下内容修改了默认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它也构建了动态库!非常感谢。