【问题标题】:Is the GNU compiler that comes with Ubuntu 12.04 not compliant with C++ 11?Ubuntu 12.04 附带的 GNU 编译器是否不兼容 C++ 11?
【发布时间】:2013-07-28 07:03:18
【问题描述】:

在 Ubuntu 13.04 更新方面遇到了一些问题,因此我关闭了我的 Ubuntu 13.04 系统并安装了 12.04 LTS 和 gnome shell,这是我更喜欢的外观和感觉。

我主要使用 Ubuntu 进行 C++ 开发并使用 C++ 11。我首选的 IDE 是 CodeLite http://www.codelite.org/

我安装了 CodeLite 并为 GNU g++ C++ 编译器添加了 C++ 11 编译器开关:-std=c++11,就像我之前所做的那样。 (我有很多使用 C++ 11 的项目,我可以在 13.04 上编译和构建它们。)

但我无法使用 12.04 上的编译器开关编译项目。我收到一条错误消息:

cc1plus:错误:无法识别的命令行选项“-std=c++11”。

没有 C++ 11,我可以毫无问题地构建和运行 C++ 项目。

Ubuntu 12.04 附带的 GNU 编译器是否与 C++ 11 不兼容?我该如何解决这个问题?我查看了 Synaptic 并没有找到任何可用的升级。我之前从未在 12.04 上尝试过,但 C++ 11 开关在 12.10 上运行良好。

我卡住了吗?我该如何解决这个问题,以便我可以继续使用 12.04 并使用 C++ 11?

【问题讨论】:

  • 您使用的完整命令是什么?您是否有可能将 -std 传递给子命令,而不是将此选项传递给 g++?

标签: c++11 g++ ubuntu-12.04


【解决方案1】:

4.7 之前的 GCC 版本使用“-std=c++0x”而不是“-std=c++11”,因为在这些版本发布时标准并不一定是 C++11。有C++11 features present in later GCC versions that will not be implemented on older versions。 GCC 4.8.1 是第一个真正具有 C++11 功能的版本。

我想您可以将编译器包更新为最新版本,同时将大部分 Ubuntu 安装保持在 12.04。

【讨论】:

  • 它适用于 c++0x。同时,我将不得不四处寻找,看看是否可以升级到 4.8.1。也许你知道我在哪里可以获得 debian 的二进制文件?我错过了什么?有什么事吗?
  • @Vector GCC C++11 support status page 将告诉您每个 GCC 版本中存在哪些功能。 Here are instructions on installing GCC 4.8 in Ubuntu 12.04。谷歌万岁。
  • 您现在可以从该 PPA 安装 4.8 - 该帖子已有 4 个月的历史了 - 至少我刚刚完成并安装了它。
猜你喜欢
  • 2013-01-17
  • 2015-11-09
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 2012-12-09
  • 2015-09-12
  • 2013-12-25
  • 1970-01-01
相关资源
最近更新 更多