找出 GCC 包含路径是什么[重复]
- 2024-10-22 08:28:00
- admin 原创
- 262
问题描述:
我正在尝试以编程方式#include
在 Linux 上查找路径,据我所知,这实际上意味着找到 GCC 认为的路径。 (这是真的吗?Clang 是如何做到的?)
根据http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html,一些组件涉及 CPU 架构和 GCC 版本;后者尤其棘手;我猜想可以通过运行gcc --version
和解析输出(或gcc -v
)来获得,但这在最好的情况下似乎不够优雅,在最坏的情况下则很脆弱。假设某人的程序正在使用 GCC 进行编译,那么从代码内部执行此操作可能是另一种选择,但这需要取决于该假设。
推荐的方法是什么?
解决方案 1:
命令
echo | gcc -E -Wp,-v -
将显示正在使用的包含路径。
解决方案 2:
我不确定您所说的查找包含路径的推荐方法是什么意思。标准方法如下所示(适用于 c 和 c++):
$ `gcc -print-prog-name=cc1` -v
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/4.7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
/usr/include
End of search list.
^C
$ `gcc -print-prog-name=cc1plus` -v
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.7
/usr/include/c++/4.7/x86_64-linux-gnu
/usr/include/c++/4.7/backward
/usr/lib/gcc/x86_64-linux-gnu/4.7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
/usr/include
End of search list.
^C
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD