未找到链接器标志/提升 - 将Boost文件系统与Xcode链接

时间:2014-07-05 14:23:59

标签: c++ xcode boost boost-filesystem

我正在尝试在Xcode中使用Boost Filesystem库。

我使用brew install boost安装了Boost,并且成功了。

原来Boost没有链接,所以我运行brew link --overwrite Boost,这有效。

我在项目中尝试#include <boost/filesystem.hpp>,但到目前为止还没有成功。

起初Xcode无法找到<boost/filesystem.hpp>,所以我添加了

/usr/local/lib
/usr/local/include

到Target和Project的Header搜索路径。

修复了原始问题,但Xcode无法找到boost_system。 以下是成绩单:

Undefined symbols for architecture x86_64:
  "boost::system::system_category()", referenced from:
      ___cxx_global_var_init2 in main.o
  "boost::system::generic_category()", referenced from:
      ___cxx_global_var_init in main.o
      ___cxx_global_var_init1 in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我将-lboost_system链接器标志添加到我的项目中,现在我收到此错误:

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

它绝对是正确的链接器标志,所以也许Boost安装不正确。 如果我找到解决方案,我会更新这个问题,但我很感激帮助解决这个问题。

2 个答案:

答案 0 :(得分:3)

在xcode 6中遇到同样的问题。用户标题搜索路径和库搜索没问题。仍显示链接错误。我通过在项目目标设置

中的其他链接器标志中添加-lboost_system-mt来解决问题

答案 1 :(得分:2)

您的标题搜索路径中只需要/usr/local/include,并且库搜索路径中需要/usr/local/lib才能让链接器找到图书馆。