关于Eclipse中的Scientific Linux的C ++ 14

时间:2015-08-10 04:01:31

标签: c++ linux eclipse redhat c++14

我的操作系统是

Linux version 2.6.32-220.7.1
(gcc version 4.4.6 20110731 (Red Hat 4.4.6-3)

由于各种原因我无法升级,所以请忽略该选项。

我的gcc版本是

Package gcc-c++-4.4.6-3.el6.x86_64 already installed and latest version

我无法升级它,如上面的消息所示。

当我在eclipse中使用以下标志时:

-c -fmessage-length=0 -std=c++1y

我没有抱怨。但是,我不能-std=c++14,因为我得到了

g++: error: unrecognized command line option ‘-std=c++14’
make: *** [2.5/Base.o] Error 1

这里到底发生了什么?我是否真的在C ++ 14上?为什么我不能升级gcc?为什么C ++ 14标志不好,而C ++ 1y是?如何轻松测试C ++ 14功能以确保我真的在上面?

由于

1 个答案:

答案 0 :(得分:1)

GCC 4.4.6于2012年在ISO 2011标准最终确定后不久发布。 C ++ 11支持仍然是高度实验性和不完整的。对于c ++ 14,您需要一个更新的编译器。

在Linux中,您可以在用户目录中安装最新的c ++编译器。如果您随后将$HOME/bin添加到$PATH并将$HOME/lib添加到$LD_LIBRARY_PATH,则可以运行没有root权限的新编译器。

您可以按照https://gcc.gnu.org/install/中的步骤进行操作,但在“配置”期间使用以下命令除外。步骤:

wget ftp://ftp.nluug.nl/mirror/languages/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2
tar -jxvf gcc-5.2.0.tar.bz2
cd gcc-5.2.0/
./configure --prefix=$HOME
make -j7
make install    # NO root priviledges required!
export PATH=$HOME/bin:$PATH
which gcc       # Should say <home dir>/bin/gcc
gcc --version   # Should say 5.2.0

我的笔记本电脑上有8个核心,如果您有不同的号码,请相应更改make -j7中的参数。构建gcc仍需要相当长的时间。

Gcc实际上是构建了三次:首先使用可用的编译器创建中间编译器,然后使用中间编译器构建最终的gcc。中间编译器在功能上等同于最终编译器,但优化程度较低。最后,使用最终编译器重新编译gcc,并检查它是否与最终编译器完全相同,从而检查最终编译器的正确性。你也得到了一个fortan和java编译器; - )

如果您的./configure失败,请仔细阅读细则,看看您缺少哪些先决条件。我在Ubuntu,所以我无法帮助你......