【问题标题】:XCode linking static library (GLEW) attempts dylib loadXCode 链接静态库 (GLEW) 尝试 dylib 加载
【发布时间】: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 的导入库吗?作为后续,如何正确构建库以避免这种情况?

【问题讨论】:

    标签: xcode macos static-libraries glew


    【解决方案1】:

    看起来这里确实发生了其他事情。

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

    一旦我删除了构建文件夹 (libGLEW.dylib) 中的动态版本,然后在离开时加载错误,我可以毫无问题地链接和调用静态库函数。

    【讨论】:

    • 这个!我刚刚经历了同样的事情。知道为什么会这样吗?是否有任何配置选项可以代替删除 dylib 文件?
    • 啊,发现这个:developer.apple.com/library/content/qa/qa1393/_index.html "注意:如果两个库都在同一个目录中而不使用 -l 链接器选项和绝对路径,则无法选择静态库而不是相应的 dylib到每个图书馆。”似乎需要一个绝对路径。
    猜你喜欢
    • 2019-06-11
    • 2018-08-09
    • 1970-01-01
    • 2018-01-23
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2013-01-20
    相关资源
    最近更新 更多