我正在尝试编译节点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) ...
摘自要旨。