Невозможно установить GCC-4.9.0

Я пытаюсь установить gcc-4.9.0 локально. Я дал следующую команду для настройки установки

LD_LIBRARY_PATH=/home/user/gmp-6.0.0/lib:/home/user/mpfr-3.1.2/lib:/home/user/mpc-
1.0.2/lib ./configure --prefix=/home/user/gcc-4.9.0-latest --with-
gmp=/home/user/gmp-6.0.0 --with-mpfr=/home/user/mpfr-3.1.2 --with-
mpc=/home/user/mpc-1.0.2 --enable-languages=c,c++ --disable-multilib

Он настроен без каких-либо ошибок, а затем, когда я делаю make installя получаю следующую ошибку

gcc-4.9.0> make install
make[1]: Entering directory `/home/user/softwares/gcc-4.9.0/build/gcc-
4.9.0'
/bin/sh ./mkinstalldirs /home/user/gcc-4.9.0-latest /home/user/gcc-4.9.0-latest
/bin/sh: line 0: cd: host-x86_64-unknown-linux-gnu/fixincludes: No such file or    
directory
make[1]: *** [install-fixincludes] Error 1
make[1]: Leaving directory `/home/user/software/gcc-4.9.0/build/gcc-4.9.0'
make: *** [install] Error 2

Может кто-нибудь помочь мне решить это?

На машине установлен RHEL 4, а ядро ​​linux - 2.6.9-67.ELsmp.

РЕДАКТИРОВАТЬ: я нашел ошибки в файле config.log

configure:4970: checking whether g++ accepts -static-libstdc++ -static-libgcc
configure:4987: g++ -o conftest -g -O2   -static-libstdc++ -static-libgcc conftest.cpp    
>&5
g++: unrecognized option `-static-libstdc++'
conftest.cpp:11:2: #error -static-libstdc++ not implemented
configure:4987: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
|
| #if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
| #error -static-libstdc++ not implemented
| #endif
| int main() {}

EDIT2:

Я запустил make и получил следующие ошибки

checking for x86_64-unknown-linux-gnu-gcc... /home/user/software/gcc-4.9.0/host-
x86_64-unknown-linux-gnu/gcc/xgcc -B/home/user/software/gcc-4.9.0/host-x86_64-
unknown-linux-gnu/gcc/ -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-
unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem 
/usr/local/x86_64-unknown-linux-gnu/sys-include
checking for suffix of object files... configure: error: in `/home/user/software
/gcc-4.9.0/x86_64-unknown-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `/home/user/software/gcc-4.9.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/user/gcc-build/gcc-4.9.0'
make: *** [all] Error 2

2 ответа

Решение

Похоже, вы создали все зависимости за пределами gcc-пакета. Включен скрипт, который соберет все зависимости в пакет gcc и включит их как часть сборки gcc:

gcc-4.9.0/contrib/download_prerequisites

Это должно упростить вашу первоначальную конфигурацию.

Не уверен, какой компилятор и / или версия используются для сборки компилятора gcc 4.9.0. Предполагается, что 3.4-иш, если вы все еще находитесь на RHEL 4. Вероятно, потребуется собрать / установить 4.2.x gcc, чтобы постепенно получить поддержку, необходимую для сборки 4.9.x, из-за отсутствия предварительно встроенной поддержки gcc для RHEL 4. Это цена пребывания на старой платформе.

Две проблемы:

Во-первых, вы никогда не должны собирать компилятор в исходном каталоге. Иногда может показаться, что это работает, но это не поддерживается, и разработчики компиляторов этого не делают, так что не стоит. Создать внешний obj каталог, и построить там:

mkdir obj
cd obj
/path/to/src/configure ...blah...blah...blah

Во-вторых, вы пропустили шаг:

make
make install

Я знаю много проектов, настроенных так, чтобы make install просто работает, но загрузка компилятора немного сложнее, чем в большинстве проектов.

Другие вопросы по тегам