c程序中包含的头文件的默认路径是啥?
Posted
技术标签:
【中文标题】c程序中包含的头文件的默认路径是啥?【英文标题】:what is default path for header file included in c program?c程序中包含的头文件的默认路径是什么? 【发布时间】:2011-12-11 15:49:43 【问题描述】:看看我是否写了类似的c文件
#include "header.h"
然后它将在当前目录中搜索该文件
但是当我写的时候
#include <header.h>
那么它会去哪里找到这个文件呢? c程序中包含的头文件的默认路径是什么?
看到我已经在 /usr/local 中安装了 gstreamer,但是当我包含时
#include <gst/gst.h>
我收到fatal error: gst/gst.h: No such file or directory
如何消除此错误?
【问题讨论】:
你可以在[这里]看到答案。 [这里]:***.com/questions/1217943/… 【参考方案1】:尝试运行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
这不是 gstreamer 问题的答案,但我希望这仍然有帮助!
来自here
【讨论】:
【参考方案2】:默认路径是
/usr/local/include
/usr/include
如果您使用其他路径,您可以在编译命令中添加-I
标志。在您的情况下,假设您有一个 /usr/local/gst/include
目录,您可以添加 -I/usr/local/gst/include
并使用 #include <whatever_you_need.h>
【讨论】:
【参考方案3】:搜索的路径取决于实现(和当前配置)。找到包含路径的正确方法是使用pkg-config
pkg-config --cflags gstreamer
【讨论】:
显示此错误 --> 在 pkg-config 搜索路径中找不到包 gstreamer。也许您应该将包含 `gstreamer.pc' 的目录添加到 PKG_CONFIG_PATH 环境变量 No package 'gstreamer' found @Mr.32 也许你需要指定一个版本。或者gstreamer
可能没有正确安装。查看/usr/lib/pkgconfig
和/usr/share/pkgconfig
。
@Mr.32:正如 cnicutar 指出的那样,您需要使用 pkg-config。对于 gstreamer,它不仅仅是 gstreamer,它是 gstreamer-ls /usr/local/lib/pkgconfig/gstreamer*
的输出,您应该会找到一堆 .pc 文件。现在试试这个:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然后pkg-config --cflags gstreamer-0.10
假设你在ls
命令中找到了gstreamer-0.10.pc
。这是否显示任何输出?<>
的默认路径是/usr/include
,至少在 Unix 上是这样。
您可以使用-I /my/new/path
编译器选项添加任意数量的默认路径。
【讨论】:
【参考方案5】:`gcc -print-prog-name=cc1` --verbose
然后是 CTRL+C
【讨论】:
您可以通过添加简短说明此命令的作用及其对问题的帮助来改进您的答案。 我同意@dakab,你应该解释这对 OP 有何帮助【参考方案6】:您可以在以下位置找到这些文件:
/usr/include
【讨论】:
以上是关于c程序中包含的头文件的默认路径是啥?的主要内容,如果未能解决你的问题,请参考以下文章