Linker 使用旧库时发生链接错误

Linker 使用旧库时发生链接错误,linker,xcode7,static-libraries,Linker,Xcode7,Static Libraries,我正在尝试使用第三方库(.a),我没有在旧应用程序中运行的源代码。我将旧的应用程序导入Xcode 7,并成功构建和运行了它。这些库依赖于具有extension.dylib的系统库,该程序仍然可以运行 然后我尝试使用相同的库构建一个新的应用程序。然而,我不得不用它们的.tbd等价物替换系统库。当我发出build命令时,出现了如下所示的链接错误,其中库名为libavutil.a ld: library not found for -lavutil clang: error: linker comma

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

然后我尝试使用相同的库构建一个新的应用程序。然而,我不得不用它们的.tbd等价物替换系统库。当我发出build命令时,出现了如下所示的链接错误,其中库名为libavutil.a

ld: library not found for -lavutil
clang: error: linker command failed with exit code 1 (use -v to see invocation
我在stack overflow的帖子中读到,需要在构建设置中添加“其他链接器标志”

我的问题是:

  • 我是否需要添加标志(用于调试和发布),例如lavutil for libavutil.a或系统库的标志-lc++for libc++
  • 我走对了吗?还是有其他解决方法 链接器错误

  • 通过阅读一些关于其他人遇到的类似链接器错误的SO帖子,有人建议我可以将库拖放到打开的窗口中,而不是将类似于
    -lavutil
    的语句添加到
    其他链接器标志中。这很有效。拖放保持正确的相对目录结构,并消除链接器在查找库时可能遇到的歧义。链接器错误被消除,我可以执行程序

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