c程序中包含的头文件的默认路径是什么?

Jee*_*tel 5 c linux gstreamer

看看我是否写过任何c文件

#include "header.h"
Run Code Online (Sandbox Code Playgroud)

然后它将在当前目录中搜索此文件

但是当我写的时候

#include <header.h>
Run Code Online (Sandbox Code Playgroud)

那么它会去哪里找到这个文件?什么是c程序中包含的头文件的defualt路径?

看我在/ usr/local安装了gstreamer但是当我包括在内时

#include <gst/gst.h>
Run Code Online (Sandbox Code Playgroud)

我在打架 fatal error: gst/gst.h: No such file or directory

我该如何删除此错误?

Nat*_*ate 15

试试跑步gcc -v -E -.当我这样做时,部分输出如下:

#include <...> search starts here:
 /usr/lib/gcc/i686-linux-gnu/4.6.1/include
 /usr/local/include
 /usr/lib/gcc/i686-linux-gnu/4.6.1/include-fixed
 /usr/include/i386-linux-gnu
 /usr/include
Run Code Online (Sandbox Code Playgroud)

这不是gstreamer问题的答案,但我希望这仍然有帮助!

这里拉出来


Tio*_*epe 6

默认路径是

/usr/local/include
/usr/include
Run Code Online (Sandbox Code Playgroud)

如果使用其他路径,则可以使用-Iflag 添加编译命令.在您的情况下,假设您有一个/usr/local/gst/include目录,您可以添加-I/usr/local/gst/include和使用#include <whatever_you_need.h>


cni*_*tar 5

搜索的路径取决于实现(和当前配置)。找到包含路径的正确方法是使用pkg-config

pkg-config --cflags gstreamer
Run Code Online (Sandbox Code Playgroud)