GCC hat integrierte Include-Verzeichnisse für bestimmte Standardheader. Ich muss nur wissen, wo diese Liste ist. Mein neu kompilierter GCC wird mein kleines C++-Testprogramm nicht kompilieren, da er keine Standardheader finden kann. Ich glaube, es schlägt aufgrund einiger Konfigurationsoptionen fehl, die ich verwendet habe, um mein Dateisystem besser zu organisieren. Ich habe Bindir und Libdir festgelegt, was meiner Meinung nach aus irgendeinem Grund die integrierten Include-Pfade durcheinandergebracht haben könnte.
Programm (dummy.c):
#include <iostream>
void main(){}
Befehl:
g++ dummy.c
Fehler:
dummy.c:1:20: fatal error: iostream: No such file or directory
Antwort1
Der Präprozessor kann Ihnen sagen, was er verwendet
cpp -x c++ -v
...
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.4
/usr/include/c++/4.4/i486-linux-gnu
/usr/include/c++/4.4/backward
/usr/local/include
/usr/lib/gcc/i486-linux-gnu/4.4.1/include
/usr/lib/gcc/i486-linux-gnu/4.4.1/include-fixed
/usr/include/i486-linux-gnu
/usr/include
End of search list.
Sie können Verzeichnisse zum Suchpfad hinzufügen, indem Sie die Umgebungsvariablen C_INCLUDE_PATH
und/oder setzen.CPLUS_INCLUDE_PATH