我知道在使用#include <file>
时,编译器将在已定义的系统目录中搜索file
。如何查看这些目录?
我问,因为我在/ usr / local / include中添加了一堆带有头文件的目录,当我#include <file>
时,编译器仍然说error: unknown type name ‘TPM_TAG’
。我怀疑/ usr / local / include不在编译器的搜索目录列表中。
谢谢!
答案 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
。)