C++ Xcode静态库-路径异常

C++ Xcode静态库-路径异常,c++,xcode,boost,linker,static-libraries,C++,Xcode,Boost,Linker,Static Libraries,我有一个使用ProtocolBuffers(libprotobuf)和Boost的ASIO库编写的简单程序。我已经确定需要在libprotobuf.a和libboost_system.a中进行链接,它们都位于我的系统上的/usr/local/lib中 按照几个地方的说明,我已将这两个.a文件添加到“链接二进制文件与库”列表中的“构建阶段”下。两者都设置为“必需” 生成时,会生成链接器错误: ld: library not found for -lprotobuf 如果我在“Build Sett

我有一个使用ProtocolBuffers(libprotobuf)和Boost的ASIO库编写的简单程序。我已经确定需要在libprotobuf.a和libboost_system.a中进行链接,它们都位于我的系统上的/usr/local/lib中

按照几个地方的说明,我已将这两个.a文件添加到“链接二进制文件与库”列表中的“构建阶段”下。两者都设置为“必需”

生成时,会生成链接器错误:

ld: library not found for -lprotobuf
如果我在“Build Settings”/“Other Linker Flags”中添加以下内容(作为两行单独的内容),那么问题就消失了:“-L”、“/usr/local/lib”

我的问题是,这种设置库搜索路径的-L黑客是否真的是正确的方法。考虑到我已经将这些库添加到“构建阶段”/“将二进制文件链接到库”列表中,我不知道为什么Xcode没有找到这些库的位置。我原以为它们出现在这个列表中就足够让Xcode知道如何找到它们了。这两个.a文件现在也显示在我的项目的文件“树”中

所以,有没有比滥用“其他链接器标志”设置更好的方法呢


我使用的是Xcode 4.6.3。

多亏了yngum,目前确定的最佳答案似乎是使用“库搜索路径”字段。考虑到这一点,“linkbinary With Libraries”列表似乎不是完整路径的列表,而是链接器稍后定位的库名称的基本列表。实际上,“用库链接二进制文件”列表类似于
-l
选项,“库搜索路径”到
-l
选项通常传递到
ld

-l
代表库搜索路径,您可以在项目设置中找到它作为选项。谢谢,我知道-l对链接器意味着什么。您是指“搜索路径”下的“库搜索路径”值吗?我刚刚试过,它似乎确实有效——这是说明这一点的最佳方法吗?如果是,为什么不简单地将库添加到“linkbinary With libraries”列表中就足够了?或者,该列表不是为了保存整个路径,而是为了保存库名称,而遵从“库搜索路径”设置来实际定位库文件?