Назад | Перейти на главную страницу

Компиляция узла с GCC v4.9.2

Кажется, я не могу скомпилировать Node.js на CentOS 6.6 (64 бит) GCC v4.9.2

$ ./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 - Вопрос Майкла

Что случилось с компилятором, который придумала система?

Я установил более новую версию компилятора (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 в этой системе которому нужен последний компилятор.

Эта настройка компилятора может работать для hhvm, но для чего-то еще она бесполезна. Довольно сложно иметь две версии gcc в одной системе. Вы можете сделать что-то вроде использования коллекции программного обеспечения, но мне лично они не нравятся, поскольку они не очень просты в использовании.

Ты должен быть с использованием CentOS 7в любом случае, так как это не потребует от вас замены компилятора, и многие вещи будут актуальными. В целом, создание системы на базе C7 в любом случае решит все ваши проблемы и будет более надежным в будущем.