在编译中设置头文件路径?
Setting header files path in compilation?
我正在尝试学习不同的编译技巧。请考虑以下代码片段:
#include <header.h>
main()
{
execute me;
}
现在我正在使用以下代码编译此代码:-
gcc hello.c -I /home/example
在 /usr/include/ 等路径中搜索我在编译此文件头期间看到的内容,但是 我已经放置了 header.h /home/example/header.h路径
所以这找不到头文件。
但是如果现在我按照下面的方式包含头文件那么它就能够找到头文件。
#include "header.h"
所以我想知道是否有任何方法可以使用 <> 选项包含头文件,并且我还可以使用命令行(使用 -I 或任何选项)提供头文件路径?
如有不明白之处请评论。
用这些 <> 符号包含头文件实际上告诉编译器在一般目录中搜索它,用这些 "" 符号包含告诉编译器在本地项目目录中搜索。
您确定它没有找到 header 吗?因为这可以证明 确实 有效。您可能拼错了 -I
之后的目录吗?
$ echo '#error here!' > header.h
$ cat test.c
#include <header.h>
int main(void)
{
return 0;
}
$ gcc -I $PWD test.c
In file included from test.c:1:0:
/home/user/header.h:1:2: error: #error here!
#error here!
^
#include "header"
的相同结果。
我正在尝试学习不同的编译技巧。请考虑以下代码片段:
#include <header.h>
main()
{
execute me;
}
现在我正在使用以下代码编译此代码:-
gcc hello.c -I /home/example
在 /usr/include/ 等路径中搜索我在编译此文件头期间看到的内容,但是 我已经放置了 header.h /home/example/header.h路径 所以这找不到头文件。
但是如果现在我按照下面的方式包含头文件那么它就能够找到头文件。
#include "header.h"
所以我想知道是否有任何方法可以使用 <> 选项包含头文件,并且我还可以使用命令行(使用 -I 或任何选项)提供头文件路径?
如有不明白之处请评论。
用这些 <> 符号包含头文件实际上告诉编译器在一般目录中搜索它,用这些 "" 符号包含告诉编译器在本地项目目录中搜索。
您确定它没有找到 header 吗?因为这可以证明 确实 有效。您可能拼错了 -I
之后的目录吗?
$ echo '#error here!' > header.h
$ cat test.c
#include <header.h>
int main(void)
{
return 0;
}
$ gcc -I $PWD test.c
In file included from test.c:1:0:
/home/user/header.h:1:2: error: #error here!
#error here!
^
#include "header"
的相同结果。