GCC 运行版本与出现版本不匹配

GCC 运行版本与出现版本不匹配

下面是我在 portage 中搜索 gcc 的输出:

emerge -s gcc

...
*  sys-devel/gcc
      Latest version available: 4.6.3
      Latest version installed: 4.6.3
      Size of files: 70,353 kB
      Homepage:      http://gcc.gnu.org/
      Description:   The GNU Compiler Collection
      License:       GPL-3+ LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.3+
...

然而当我这样做时gcc --version,我得到了这个:

gcc (Gentoo 4.5.4 p1.0, pie-0.4.7) 4.5.4

有什么想法吗?我需要使用 C++11 来编译项目,但我不知道该怎么做。提前谢谢您!

答案1

您必须使用gcc-config。它基本上是 gcc 的 eselect 版本。请按照此处的 gentoo gcc 升级指南进行操作:

http://www.gentoo.org/doc/en/gcc-upgrading.xml

答案2

emerg 基于 Python,读取位于 /usr/portage 中的标准 .ebuild 文件。ebuild 文件描述了如何配置和安装源,具体取决于 /etc/make.conf 中设置的变量。

也许在新版本的 GCC 中 .ebuild 文件没有升级。并且您看到的是错误的版本。

您所拥有的 GCC 4.5 不支持以下选项:

  1. *this 的右值引用
  2. 非静态数据成员初始值设定项
  3. 模板别名
  4. 空指针常量
  5. 枚举的前向声明
  6. 通用属性
  7. 广义常量表达式
  8. 对齐支持
  9. 委托构造函数
  10. 继承构造函数
  11. 扩展朋友声明和许多其他选项......

GCC 4.8 完全支持 C++11。请尝试将您的编译器升级到最新版本。

相关内容