我知道当使用#include <file>
时,编译器将在定义的系统目录中搜索file
。如何查看这些目录?
我问是因为我在/usr/local/include 中添加了一个包含一堆头文件的目录,当我#include <file>
时编译器仍然说 error: unknown type name ‘TPM_TAG’
.我怀疑/usr/local/include 不在编译器要搜索的目录列表中。
谢谢!
您可以根据编译器以不同的方式进行搜索,例如,使用 gcc 可以通过以下方式检查编译器查找文件的位置
gcc -print-search-dirs
或者您可以使用选项编译 c 文件 gcc -H
,例如使用 gcc -H -c myfile.c
这取决于您使用的是标准标头还是本地用户定义的标头。也许尝试使用 #include"文件"并将头文件设置为本地,看看是否有效?
gcc -I. yourfile.c
-I
引入include files
的路径,所以如果你的子目录中有一些包含文件,比如sort/list/等,你应该表现为:
gcc -I. -I./list -I./sort myfile.c
注意:请考虑对头文件使用 ""
,对系统头文件使用 <>
。例如:
#include <iostream>
#include "myheader.h"
附带了许多*.h
文件,这些文件取决于其确切配置。也看看这个问题。说服GCC/clang拥有的一般方法是:
echo | gcc -E -Wp,-v -
(根据需要将gcc
替换为clang
)。