XCode 链接静态库 (GLEW) 尝试 dylib 加载
Posted
技术标签:
【中文标题】XCode 链接静态库 (GLEW) 尝试 dylib 加载【英文标题】:XCode linking static library (GLEW) attempts dylib load 【发布时间】:2015-02-23 17:17:41 【问题描述】:我正在尝试将 GLEW 库链接到 Xcode 项目,但我遇到了问题。每当我将构建设置为与 libGLEW.a 链接时,我都会在启动时立即崩溃,并显示错误输出:
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 的导入库吗?作为后续,如何正确构建库以避免这种情况?
【问题讨论】:
【参考方案1】:看起来这里确实发生了其他事情。
当我构建静态 GLEW 库时,它还在旁边构建了动态版本。根据我在网上进行的一些其他搜索,如果库搜索路径中存在同名版本,Xcode 似乎会自动尝试加载库的动态版本。
一旦我删除了构建文件夹 (libGLEW.dylib) 中的动态版本,然后在离开时加载错误,我可以毫无问题地链接和调用静态库函数。
【讨论】:
这个!我刚刚经历了同样的事情。知道为什么会这样吗?是否有任何配置选项可以代替删除 dylib 文件? 啊,发现这个:developer.apple.com/library/content/qa/qa1393/_index.html "注意:如果两个库都在同一个目录中而不使用 -l 链接器选项和绝对路径,则无法选择静态库而不是相应的 dylib到每个图书馆。”似乎需要一个绝对路径。以上是关于XCode 链接静态库 (GLEW) 尝试 dylib 加载的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使在搜索路径中列出了 GLEW 动态库,Xcode 也无法找到它?