使用 GCC v4.9.2 编译 Node

使用 GCC v4.9.2 编译 Node

我似乎无法在 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 的系统几乎可以解决您的所有问题,并且更能适应未来。

相关内容