如何使用<>查看#include目录

时间:2014-02-24 19:19:55

标签: c include-path

我知道在使用#include <file>时,编译器将在已定义的系统目录中搜索file。如何查看这些目录?

我问,因为我在/ usr / local / include中添加了一堆带有头文件的目录,当我#include <file>时,编译器仍然说error: unknown type name ‘TPM_TAG’。我怀疑/ usr / local / include不在编译器的搜索目录列表中。

谢谢!

4 个答案:

答案 0 :(得分:1)

您可以根据编译器以不同的方式进行搜索,例如使用gcc可以使用

检查编译器查找文件的位置。
gcc -print-search-dirs

或者您可以使用gcc -H选项编译您的c文件,例如使用gcc -H -c myfile.c

答案 1 :(得分:0)

这取决于您使用的是标准标头还是本地用户定义的标头。也许尝试使用#include“file”并将头文件改为本地,看看是否有效?

答案 2 :(得分:0)

gcc -I. yourfile.c 

-I引入了include files的路径,因此,如果您的子目录中有一些包含文件,例如sort / list /等等,那么您应该表现得如下:

gcc -I. -I./list -I./sort myfile.c

注意: 请考虑使用""作为头文件,并使用<>作为系统头文件。例如:

#include <iostream>
#include "myheader.h"

答案 3 :(得分:0)

编译器附带了许多依赖于其确切配置的*.h个文件。看看这个question也是如此。说服GCC / clang拥有的一般方法是:

echo | gcc -E -Wp,-v -

(根据需要将gcc替换为clang。)