在 CentOS 6.7 中编译 node-5.1.0 缺少 g++ 4.8+

在 CentOS 6.7 中编译 node-5.1.0 缺少 g++ 4.8+

我正在尝试编译节点5.1.0在 CentOS 6.7 中,但要求g++ 4.8或以上。

[root@ws node-v5.1.0]# ./configure
WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)
...

首先我安装了“开发工具”:

[root@ws node-v5.1.0]# yum groupinstall 'Development Tools'

检查g++版本后:

[root@ws node-v5.1.0]# g++ -v
...
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) 

虽然这个版本还不够,但我做了一些研究,找到了一个可能的安装/升级的方法g++。我发现我遵循了每一个步骤:

[root@ws node-v5.1.0]# wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

[root@ws node-v5.1.0]# yum install devtoolset-2-gcc devtoolset-2-binutils

[root@ws node-v5.1.0]# /opt/rh/devtoolset-2/root/usr/bin/gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15
...

我再次尝试使用相同的命令来编译 NodeJS:

[root@ws node-v5.1.0]# ./configure
WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)

但正如您所看到的,我得到了关于 g++ 版本的相同错误,这让我问:

  • 我如何将新安装的gcc版本传递给./configure
  • 还有其他方法可以使用或将该版本设置为默认版本吗?

笔记:我指的是版本,/opt/rh/devtoolset-2/root/usr/bin/gcc如果更换到那个版本是完全安全的

更新

发布问题后我发现并按照相同的步骤:

[root@ws node-v5.1.0]# export CC=/opt/rh/devtoolset-2/root/usr/bin/gcc
[root@ws node-v5.1.0]# export CPP=/opt/rh/devtoolset-2/root/usr/bin/cpp
[root@ws node-v5.1.0]# export CXX=/opt/rh/devtoolset-2/root/usr/bin/c++

但结果是一样的:

[root@ws node-v5.1.0]# ./configure
WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)

答案1

  • 更新 dev3 并启用 -scl 启用 devtoolset-3 bash -./configure
  • 确保来自 nodjs 目录

答案2

导入 CERN 的 GPG 密钥:

sudo rpm --import http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern

/etc/yum.repos.d/slc6-devtoolset.repo在您的系统上保存存储库信息:

wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo 安装:

sudo yum install devtoolset-2

启用环境:

scl enable devtoolset-2 bash

测试环境:

$ gcc --version gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15) ...

$ g++ --version g++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15) ...

摘自要旨

相关内容