GCC имеет встроенные каталоги include для некоторых стандартных заголовков. Мне просто нужно знать, где находится этот список. Мой недавно скомпилированный gcc не скомпилирует мою маленькую тестовую программу C++, потому что он не может найти стандартные заголовки. Я думаю, что это происходит из-за некоторых параметров конфигурации, которые я использовал, чтобы сделать свою файловую систему более организованной. Я установил bindir и libdir, которые, как я думаю, могли испортить встроенные пути include по какой-то причине.
Программа (dummy.c):
#include <iostream>
void main(){}
Команда:
g++ dummy.c
Ошибка:
dummy.c:1:20: fatal error: iostream: No such file or directory
решение1
Препроцессор может сказать вам, что он использует
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.
Вы можете добавлять каталоги в путь поиска, устанавливая переменные среды C_INCLUDE_PATH
и/илиCPLUS_INCLUDE_PATH