当前位置:  开发笔记 > 编程语言 > 正文

gcc在哪里查找C和C++头文件?

如何解决《gcc在哪里查找C和C++头文件?》经验,为你挑选了6个好方法。

在Unix系统上,gcc在哪里查找头文件?

我今天早上花了一点时间寻找一些系统头文件,所以我认为这将是很好的信息.



1> Drew Dormann..:
`gcc -print-prog-name=cc1plus` -v

这个命令询问gcc 它正在使用哪个C++预处理器,然后询问它所寻找的预处理器包括什么.

您将获得特定设置的可靠答案.

同样,对于C预处理器:

`gcc -print-prog-name=cpp` -v


@mijiturka [什么`(反引号/反引号)在bash中意味着什么?](http://unix.stackexchange.com/questions/27428/what-does-backquote-backtick-mean-in-bash)
我猜C**预处理器**是`cpp`而不是`cc1`?在我的debian jessie` $(gcc -print-prog-name = cpp)-v`(正确)给出了另一条路径,即`/ usr/include/x86_64-linux-gnu`
这是什么意思?我发现很难找到这个.
如果你想要不挂起等待输入,重定向来自`/ dev/null`的输入,所以`\`gcc -print-prog-name = cc1 \`-v
2> 小智..:

此外,gcc将查看-I选项后指定的目录.



@totaam:检查你的字体!这个答案使用"-I"(大写"眼睛")而不是"-l"(小写"ell").
-I用于,而-iquote用于"quotedfiles.h"

3> diciu..:

您可以创建一个尝试包含伪造系统标头的文件.如果在这样的源上以详细模式运行gcc,它将列出所有系统包含的位置,因为它查找伪造的头.

$ echo "#include " > t.c; gcc -v t.c; rm t.c

[..]

#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc/i686-apple-darwin9/4.0.1/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.

[..]

t.c:1:32: error: bogus.h: No such file or directory


没有临时文件:`echo"#include "| gcc -v -xc -`
我认为,如果您只是说“使用-v选项”,这将更加有用。
`gcc -v -E -
4> Bill the Liz..:

该CPP科的的GCC手册表明,头文件可能位于以下目录:

GCC在几个不同的地方寻找标题.在普通的Unix系统上,如果你不指示它,它将在#include中寻找请求的头:

 /usr/local/include
 libdir/gcc/target/version/include
 /usr/target/include
 /usr/include

对于C++程序,它首先也会查看/ usr/include/g ++ - v3.


@Martin:你老了.我在/usr/include/c++/4.2 :)

5> zwol..:

要让GCC打印出它将查找系统头的完整目录集,请像这样调用它:

$ LC_ALL=C gcc -v -E -xc - < /dev/null 2>&1 | 
  LC_ALL=C sed -ne '/starts here/,/End of/p'

这将产生表格的输出

#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.

如果-I在命令行上有-family选项,它们将影响打印出来的内容.

(该sed命令是为了摆脱这个调用所打印的所有其他垃圾,并且LC_ALL=C确保该sed命令有效 - "从这里开始"和"搜索结束列表"短语翻译成IIRC.)



6> 小智..:
g++ -print-search-dirs
gcc -print-search-dirs

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有