Entonces, tengo instalado Xubuntu 14.04.1 de 32 bits. Tenemos algún código de interfaz en el que pretendemos lanzar SO para las diversas plataformas que admitimos y DLL de Windows. (Sí, lo sé, el lanzamiento binario es malo, pero tampoco es relevante aquí).
Estoy tratando de construir SO de 32 bits y 64 bits con 14.04.01 de 32 bits, usando argumentos -m32
/ -m64
gcc / g ++. La versión de 32 bits funciona bien, pero la versión de 64 bits falla con
/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory
Al registrar las inclusiones, ese archivo está genuinamente presente para 32 bits pero falta para 64 bits.
Googleando el problema, esto parece haber sucedido en el pasado para GCC / G ++ 4.6, pero luego está marcado como fijo. Pero 14.04.1 está utilizando GCC / G ++ 4.8, lo que sugiere que ha habido una regresión en esas bibliotecas en GCC / G ++ 4.8. ¿Es esto algo que alguien más ha visto?
Si fuera necesario, podría configurar una nueva máquina virtual para 14.04.1 de 64 bits y ver si eso recogería las versiones correctas de la biblioteca. Sin embargo, preferiría no hacerlo si es posible, porque tengo un montón de otras cosas que también tendría que reinstalar. ¿Hay una mejor solución? Y si instalara la versión 14.04.1 de 64 bits, ¿podría volver a compilar de forma cruzada a 32 bits sin perder encabezados en la otra dirección?
g++-multilib
paquete?Respuestas:
El archivo de 64 bits bits / c ++ config.h se proporciona en sistemas de 32 bits (y viceversa) al instalar el
g++-multilib
paquete, por lo que debe instalar ese paquete utilizando Software Center, Synaptic o mediante el terminal utilizandoEste es solo un paquete de dependencia que se resuelve
g++-4.8-multilib
para la versión predeterminada de gcc / g ++, y a su vez depende delib64stdc++-4.8-dev
(compilación de 64 bits en 32 bits) olibx32stdc++-4.8-dev
(compilación de 32 bits en 64 bits): son estos los que contienen el archivos de encabezado reales.Hay un conjunto equivalente de paquetes para el compilador de C llana
gcc
.fuente
sudo apt-get install g++-5-multilib
me consiguió la versión que necesitaba. Si esto no funciona para usted, la notasudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update
también es parte de mi configuración.