Então, eu tenho o Xubuntu 14.04.1 de 32 bits instalado. Temos algum código de interface em que pretendemos liberar SOs para as várias plataformas suportadas e DLLs do Windows. (Sim, eu sei, versão binária ruim, mas também não relevante aqui.)
Estou tentando criar SOs de 32 e 64 bits com 14.04.01 de 32 bits, usando argumentos -m32
/ -m64
gcc / g ++. A versão de 32 bits funciona bem, mas a versão de 64 bits falha com
/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory
Ao fazer check-in, o arquivo está realmente presente para 32 bits, mas está ausente para 64 bits.
Pesquisando o problema, isso parece ter acontecido no passado para o GCC / G ++ 4.6, mas é marcado como corrigido. Mas o 14.04.1 está usando o GCC / G ++ 4.8, o que sugere que houve uma regressão nessas bibliotecas no GCC / G ++ 4.8. Isso é algo que mais alguém viu?
Eu poderia configurar uma nova VM para o 14.04.1 de 64 bits, se necessário, e ver se isso pegaria as versões corretas da biblioteca. Prefiro não, se possível, porque tenho um monte de outras coisas que eu teria que reinstalar também. Existe uma solução melhor? E se eu instalasse o 14.04.1 de 64 bits, seria definitivamente capaz de compilar de volta para 32 bits sem perder cabeçalhos na outra direção?
g++-multilib
pacote?Respostas:
O arquivo de 64 bits / c ++ config.h é fornecido em sistemas de 32 bits (e vice-versa) instalando o
g++-multilib
pacote; portanto, você precisa instalá-lo usando o Software Center, Synaptic ou através do terminal usandoEste é apenas um pacote de dependência que resolve
g++-4.8-multilib
para a versão padrão gcc / g ++ e, por sua vez, depende delib64stdc++-4.8-dev
(compilação de 64 bits em 32 bits) oulibx32stdc++-4.8-dev
(compilação de 32 bits em 64 bits) - são estes que contêm o arquivos de cabeçalho reais.Há um conjunto equivalente de pacotes para o compilador C simples
gcc
.fonte
sudo apt-get install g++-5-multilib
me deu a versão que eu precisava. Se isso não funcionar para você, notesudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update
também faz parte da minha configuração.