【发布时间】:2012-12-24 04:09:40
【问题描述】:
我正在尝试编译具有 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 甚至破坏了我的编译。我找不到适合我的组合。
你能提出什么问题吗?
编辑:我这样做的动机是我想在我的 c++ 代码中使用 std::thread 与 Objective-c 接口(并且让该 c++ 代码仍然是可移植的)
【问题讨论】:
-
我遇到了这些错误... [对不起,我会改写为答案..] 同时您使用的是最新的 Xcode 和 OSX 吗?
-
我认为site 很好地解释了这一点。我最近被困在这个问题上,发现它很有帮助。
标签: c++ xcode c++11 linker c++-standard-library