我在OS X上构建一个使用boost库的命令行应用程序(目前我使用的是版本1.48)。这是一个Xcode项目。在Build设置中,对于“C ++ Standard Libray”字段,我正在使用libstd++
(GNU c ++标准库)。但我想使用最新的libc++
(LLVM C ++标准库)。当我更改为libc++
时,我的升压库会出现链接器错误。
错误是它无法找到符号。
Undefined symbols for architecture i386
"boost::filesystem::path_traits::dispatch(boost::filesystem::directory_entry const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)", referenced from:
boost::enable_if<boost::filesystem::path_traits::is_pathable<boost::decay<boost::filesystem::directory_entry>::type>, boost::filesystem::path&>::type boost::filesystem::path::operator=<boost::filesystem::directory_entry>(boost::filesystem::directory_entry const&) in MyCode.o
有很多这样的错误,我只粘贴一个。其余的都是相似的。
我尝试使用此http://hnrkptrsn.github.io/2013/02/26/c11-and-boost-setup-guide/
下载,构建和安装带有工具集的最新boost库作为clang但问题仍然存在。这个问题有什么解决方案吗?