gcc ubuntu-12.04

gcc no puede encontrar bits/predefs.h en i686



ubuntu-12.04 (2)

Intenta hacer una

sudo apt-get install gcc-multilib

No creo que la instalación de un sistema de 32 bits cambie la arquitectura de su computadora, porque su computadora siempre será una máquina de 64 bits. Instalar la versión de 64 bits de Ubuntu solo debería ofrecer un mejor rendimiento multi-core. Como su computadora todavía es una computadora de 64 bits, probablemente necesite un compilador de C que compilará en máquinas de 64 bits. De ahí el gcc-multilib. Creo.

De acuerdo, cambié de Ubuntu 12.04 de 64 bits a 32 bits e instalé build-essential.

Luego compilé e instalé GMP-5.0.5, MPFR-3.1.1, MPC-1.0, ISL-0.10 y CLOOG-0.17.0. Revisé una copia del tronco principal de gcc e intenté construirlo con la siguiente línea de configuración (desde un directorio aparte):

../svnsrc/configure --prefix=/usr/GCC/svn --enable-__cxa_atexit --with-plugin-ld=/usr/bin/ld.gold --enable-threads=posix --enable-werror --enable-build-with-cxx --with-gmp=/usr/GCC/prereq/svn --with-mpfr=/usr/GCC/prereq/svn --with-mpc=/usr/GCC/prereq/svn --with-isl=/usr/GCC/prereq/svn --with-cloog=/usr/GCC/prereq/svn --enable-languages=c,c++

Configurar funcionó bien y entonces ejecuté make && make check . Esto funcionó bien por un tiempo, pero luego falló con el siguiente error:

/home/matt/GCC/svnbuild/./gcc/xgcc -B/home/matt/GCC/svnbuild/./gcc/ -B/usr/GCC/svn/i686-pc-linux-gnu/bin/ -B/usr/GCC/svn/i686-pc-linux-gnu/lib/ -isystem /usr/GCC/svn/i686-pc-linux-gnu/include -isystem /usr/GCC/svn/i686-pc-linux-gnu/sys-include -g -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fpic -mlong-double-80 -I. -I. -I../.././gcc -I../../../svnsrc/libgcc -I../../../svnsrc/libgcc/. -I../../../svnsrc/libgcc/../gcc -I../../../svnsrc/libgcc/../include -I../../../svnsrc/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c ../../../svnsrc/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS In file included from /usr/include/stdio.h:28:0, from ../../../svnsrc/libgcc/../gcc/tsystem.h:88, from ../../../svnsrc/libgcc/libgcc2.c:29: /usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory #include <bits/predefs.h> ^ compilation terminated. make[3]: *** [_muldi3.o] Error 1 make[3]: Leaving directory `/home/matt/GCC/svnbuild/i686-pc-linux-gnu/libgcc

Miré a mi alrededor, pero todo lo que pareció encontrar fue que este error fue causado en x86_64, al no instalar gcc-multilib , porque Ubuntu y Debian usan el sistema mutiarch, separando las bibliotecas. De acuerdo, bien ... pero estoy usando i686, ¿por qué necesitaría las bibliotecas de 64 bits? Cualquier ayuda sería apreciada. Gracias.


el truco gcc-multilib no funcionó para mí. En cambio, establecer esto en el entorno de construcción hizo el truco:

C_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)