2015-02-23 87 views
1

我想链接GLEW库到Xcode项目,但我一直在遇到问题。每当我建立我的编译链接libGLEW.a,我会立即在启动时崩溃,错误输出读数:XCode链接静态库(GLEW)尝试dylib加载

yld:库未加载:/usr/lib/libGLEW.1.12.0.dylib 从引用:/Users/xxx/Library/Developer/Xcode/DerivedData/xcode-test/Products/Debug/manualWindow.app/Contents/MacOS/manualWindow 原因:没有找到图片

我还没有编写任何代码要求我的应用程序加载这个动态库。这种行为似乎也许我的GLEW库实际上是一个导入库,并且正在尝试加载dylib。我自己构建了GLEW,并且在生成静态库的对象时,可以看到在命令行中指定了“-DGLEW_STATIC”。

有没有人知道我可以告诉我的GLEW库(libGLEW.a)是否实际上是dylib的导入库?作为后续工作,如何正确建立图书馆以避免这种情况?

回答

4

它看起来像其他事情实际上发生在这里。

当我构建静态GLEW库时,它也在其旁边构建了动态版本。根据我在线进行的一些其他搜索,似乎Xcode会自动尝试加载库的动态版本,如果库搜索路径中存在相同名称的版本。

一旦我删除我的生成文件夹(libGLEW.dylib)中的动态版本,然后加载错误时,我可以链接和调用静态库函数没有问题。

+0

This!我刚刚经历过同样的事情。任何想法为什么会发生?有没有配置选项可以做,而不是删除dylib文件? – thomthom 2016-12-20 09:19:45

+0

啊,发现这个:https://developer.apple.com/library/content/qa/qa1393/_index.html “注意:如果两个库都位于相应的dylib中,则无法选择静态库而不使用-l链接器选项和每个库的绝对路径。“ 似乎需要一个绝对路径。 – thomthom 2016-12-20 09:33:33