我正在尝试编译具有 C++11 支持的 3 个项目的工作区。这组项目已使用 LLVM 编译器默认值成功编译和链接。此外,c++ 代码之前已经在许多编译器上编译过,包括 g++、llvm、msvc、sun、irix 等,因此它是非常干净的代码。
在工作区构建设置的 c++ 语言方言部分下,有 3 行项目:
c语言方言
c++语言方言
c++标准库
使用设置:
c语言方言:编译器默认
c++语言方言:编译器默认
c++标准库:libc++(支持c++11的LLVM c++标准库)
我可以成功编译但得到很多链接错误。有些来自我们自己的函数,有些来自标准函数。以下是标准函数的链接错误示例:
(null): "std::string::find_last_of(char const*, unsigned long) const",引用自: (null): "std::string::size() const",引用自:
很明显我链接到了错误的标准库,所以我调查了更改上面的各种选项。将方言更改为 -std=c++11 甚至破坏了我的编译。我找不到适合我的组合。
你能建议什么可能是错的吗?
编辑:我这样做的动机是我想在与objective-c接口的c++代码中使用std::thread(并且让c++代码仍然是可移植的)