【问题标题】:GCC 4.7/4.8 as Xcode's C/C++ CompilerGCC 4.7/4.8 作为 Xcode 的 C/C++ 编译器
【发布时间】:2013-03-19 03:37:58
【问题描述】:

我现在正在处理一个 C++ 项目,我希望将 C++11 功能用于该项目。在这个项目中,我使用了用于数论内容的库 NTL。 由于 Xcode 具有自动完成功能,我使用 Xcode 编写代码,并且库 NTL 与标志“-lntl”静态链接。

现在,我希望使用一些 C++11 特性。 Xcode 中默认的 Apple 的 LLVM 编译器包括这种支持,但不知何故,使用 NTL 和 iostream 编译不起作用,这与使用 Xcode 的 LLVM GCC 4.2 编译器不同。

因此,我使用 LLVM GCC 4.2 编译器,但它不包括对 C++11 的支持。因此,我酿造了 gcc48,我现在希望让 Xcode 用 gcc4.8 编译它的代码。

我该怎么做?

--编辑--
感谢所有建议从 libc++ 更改为 stdlibc++ (GNU libc++) 的 cmets 并解决了 NTL 未使用 Clang 编译的问题。

【问题讨论】:

  • 你是如何安装 NTL 的?您是否尝试过使用 clang 重新编译它?
  • 没有。你建议这应该解决clang没有正确编译NTL项目的尴尬问题?
  • Xymotech 是对的,我认为你应该尝试解决编译错误而不是将 gcc48 集成到 XCode 中,这样会少一些痛苦,少一些问题。如果您在问题中包含编译错误,那就太好了。
  • 也完全可以使用 GNU stdlibc++ 编译 Clang - 二进制兼容性是您想要编译的主要原因。
  • 该死的人,它被称为 libstdc++ 而不是 stdlibc++

标签: c++ xcode macos c++11 g++


【解决方案1】:

C++ 运行时库有两种不同的实现方式:gcc 的libstdc++ 和clang 的libc++,它们相互不兼容。

将使用从libc++更改为libstdc++

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多