我似乎无法在 CentOS 6.6 (64 位) GCC v4.9.2 上编译 Node.js
$ ./configure
Node.js configure error: No acceptable C compiler found!
Please make sure you have a C compiler installed on your system and/or
consider adjusting the CC environment variable if you installed
it in a non-standard prefix.
更多细节:
$ which gcc
/usr/bin/gcc
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-current/configure --enable-languages=c,c++,fortran --enable-multilib --prefix=/usr/local/gcc
Thread model: posix
gcc version 4.9.2 (GCC)
$ which python
/usr/bin/python
$ python --version
Python 2.6.6
我已尝试设置 CC。
$ CC="/usr/local/gcc/bin/gcc"
$ set | grep CC
CC=/usr/local/gcc/bin/gcc
但它会导致同样的错误。
有任何想法吗?
编辑 1 - Michael 的问题
系统自带的编译器怎么了?
我已经在中安装了较新版本的编译器(v4.9.2)/usr/local/gcc
,并删除了原始编译器(v4.4.7)并尝试通过以下方式替换它:
yum remove -y gcc gcc-c++ cpp
sudo mv /usr/bin/g++ /usr/bin/g++_old
sudo mv /usr/bin/c++ /usr/bin/c++_old
sudo ln -s -f /usr/local/gcc/bin/gcc /usr/bin/gcc
sudo ln -s -f /usr/local/gcc/bin/g++ /usr/bin/g++
sudo ln -s -f /usr/local/gcc/bin/c++ /usr/bin/c++
sudo ln -s -f /usr/local/gcc/bin/cpp /usr/bin/cpp
sudo ln -s -f /usr/local/gcc/bin/gfortran /usr/bin/gfortran
sudo ln -s -f /usr/local/gcc/bin/gcov /usr/bin/gcov
sudo cp /usr/local/gcc/lib64/libstdc++.so.6.0.20 /usr/lib64/.
sudo mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
sudo ln -s -f /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6
我这么做是因为在此系统上安装 HHVM它需要一个最新的编译器。
答案1
该编译器设置可能适用于 hhvm,但对于其他任何系统来说都毫无用处。在同一系统上安装两个 gcc 版本非常困难。你可以使用软件集合之类的东西,但我个人不喜欢它们,因为它们不太容易使用。
你应该使用 CentOS 7无论如何,因为它不需要您更换编译器,而且更多东西将是最新的。总的来说,基于 C7 的系统几乎可以解决您的所有问题,并且更能适应未来。