用gcc或者g++編譯的時候,比如頭文件會搜索1、當前目錄 2、-I指定的目錄 3、搜索gcc的環境變量CPLUS_INCLUDE_PATH(C程序使用的是C_INCLUDE_PATH)4、GCC安裝的目錄(可以通過gcc -print-search-dirs查詢)5、/usr/include和/usr/local/include。
但是搜索這些目錄的時候會不會搜索這些目錄下面的子文件夾呢?寫了個簡單的測試文件測試下。
main.cpp
main.h
首先將這兩個文件放在同一目錄下,編譯沒有問題。然後在cpp所在目錄下新建一個子文件夾inc,然後將main.h放置在inc文件夾下。編譯時提示找不到main.h,表明編譯時系統不會搜索子文件夾。需要將程序改爲#include "inc/main.h",這樣編譯可以通過。或者在編譯時將inc目錄包含進去。