使用旧库链接错误

时间:2016-02-23 21:17:10

标签: linker xcode7 static-libraries

我正在尝试使用第三方库(.a),我没有源代码,这在旧的应用程序中有效。我将旧应用程序导入Xcode 7并成功构建并运行它。这些库依赖于扩展名为.dylib的系统库。该程序仍然有效。

然后我尝试使用相同的库构建一个新的应用程序。但是,我不得不用他们的.tbd等效替换系统库。当我发出构建命令时,我收到链接错误,如下所示库名为libavutil.a

ld: library not found for -lavutil
clang: error: linker command failed with exit code 1 (use -v to see invocation

我在堆栈溢出帖子中读到了需要添加到其他链接器标志的问题。在构建设置中。

我的问题是:

  1. 我是否需要添加标志(调试和发布),例如用于libavutil.a的lavutil或用于libc ++的系统库-lc ++的标志?
  2. 我是否在正确的轨道上?或者是否有其他解决方案 链接器错误。

1 个答案:

答案 0 :(得分:0)

通过阅读其他人遇到的类似链接器错误的SO帖子,有人建议不要向-lavutil添加other linker flags类似的语句,而是将库拖放到窗口中打开了多个价值观。这很好用。拖放维护正确的相对目录结构,并消除链接器在查找库时可能遇到的歧义。删除了链接器错误,我可以执行该程序。

总之,我切换到Xcode 7,将目标更改为9.2,拖动我的第三方库,然后构建并运行。