Что такое каталоги включения GCC по умолчанию?
когда я компилирую очень простой исходный файл с помощью gcc, мне не нужно указывать путь к стандартным включенным файлам, таким как stdio или stdlib.
как GCC знает, как найти эти файлы?
у него есть /usr/include
path hardwired внутри, или он получит пути от других компонентов ОС?
3 ответа:
чтобы выяснить пути по умолчанию, используемые gcc / g++ , а также их приоритеты, вы изучаете выходные данные следующих команд:
Для C:
gcc -xc -E -v -
Для C++:
gcc -xc++ -E -v -
кредит идет в команду Qt Creator.
есть команда с более коротким выходом, которая позволяет автоматически вырезать включенные пути из строк, начиная с одного пробела:
$ echo | gcc -Wp,-v -x c++ - -fsyntax-only ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include-fixed" ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../x86_64-redhat-linux/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/x86_64-redhat-linux /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/backward /usr/lib/gcc/x86_64-redhat-linux/4.8.2/include /usr/local/include /usr/include End of search list.
кредит идет на libc++ на главной странице.
вот статья, описывающая пути поиска gcc:http://www.network-theory.co.uk/docs/gccintro/gccintro_21.html
кроме того, вы можете указать дополнительные пути поиска с помощью
-I
переключатель. Вы можете сделать это из командной строки или в вашем файле Makefile.