Mavericks 升级后 OS X 上的 C++ 编译问题

标签 c++ macos linker g++ clang

我正在处理的代码在升级之前编译得很好,但现在当我使用以下任一方法将我的所有文件链接在一起时:

g++ {*.o 文件列表} 可执行 -l...

或者与我的编译器一样使用 clang 时,对于链接函数的每个函数调用,我都会收到错误消息:

"fastjet::sorted_by_pt(std::__1::vector<fastjet::PseudoJet, std::__1::allocator<fastjet::PseudoJet> > const&)", referenced from:
  _main in ZJetGen.o
  CZMultijet::weight() in ZJets.o
...

"std::__1::__vector_base_common<true>::__throw_out_of_range() const", referenced from:
...

有谁知道这可能是什么原因造成的?提前致谢 jack

最佳答案

发生这种情况是因为头文件在更新 Mavericks 后被删除,所以您需要安装它们,步骤如下:

  1. 安装或更新到新的 5.0.1 XCode

  2. 在 OSX 10.9 Mavericks 中安装命令行工具,方法是在终端窗口中键入以下命令,然后单击安装: xcode-select --install

现在应该可以正常工作了

关于Mavericks 升级后 OS X 上的 C++ 编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19636485/

相关文章:

objective-c - 从头开始重新实现 NSObject

c++ - 链接问题与 g++ 有关,但与 cc 无关

c - 如何获取 "how many and which symbols are resolved by linker"的信息?

c++ - 为 Palm OS 开发类似控制台的应用程序

c++ - std::cout 是否完全在堆栈上运行?

c++ - 如何覆盖 QWizard 中的 "next"插槽?

c - 使用 openssl 时链接器错误

c++ - 设置 MP3 编码器 mft 输出类型失败

c++ - 我如何在 Mac 上构建 gcc?

ios - SDK 'Application' 中的产品类型 'iOS 10.2' 需要代码签名