Je suis sous la version 32 bits de Ubuntu 10.10 et en essayant de traverser les compiler en 64 bits cible. Basé sur mes recherches, j'ai installé le g++-multilib paquet.
Le programme est très simple bonjour tout le monde:
#include <iostream>
int main( int argc, char** argv )
{
std::cout << "hello world" << std::endl;
return 0;
}
Compiler:
g++ -m64 main.cpp
Erreur:
In file included from main.cpp:1:
/usr/include/c++/4.4/iostream:39: fatal error: bits/c++config.h: No such file or directory
compilation terminated.
J'ai trouvé un c++config.h
le fichier mais ils résident en vertu de l' i486-linux-gnu
et i686-linux-gnu
annuaires /usr/include/c++/4.4/
Il n'y a pas d' c++config.h
en /usr/include/c++/bits
.
Toutes les idées sur ce que je suis absent? Compilation sans l' -m64
drapeau fonctionne très bien (un.est créé et fonctionne correctement).
Modifier Grâce à l'indice de @nightcracker, j'ai fait un peu plus d'enquête sur la structure include sur la 32 bits et 64 bits des systèmes. J'ai ajouté une réponse ci-dessous qui "résout" le problème temporairement, mais je pense qu'il va briser sur la prochaine mise à jour. En gros, il me manque un répertoire appelé /usr/include/c++/4.4/i686-linux-gnu/64
que doit contenir un sous-répertoire appelé bits
qui a le manque d'inclure le fichier. Toute idée de ce paquet devrait être de prendre soin de cela?