找出GCC包含的path是

我试图以编程方式在Linux上find#includepath,据我所知,实际上意味着findGCC认为它是什么。 (这是真的吗?Clang是怎么做到的?)

根据http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html,一些组件涉及CPU架构和GCC版本; 后者似乎特别棘手; 我猜想可以通过运行gcc --version和parsing输出(或者gcc -v )来获得,但是这样看起来似乎不够好,最坏的情况是脆弱的。 假设你的程序正在用GCC进行编译,那么在代码中做这个操作可能是另外一个select,但是这需要依赖于这个假设。

推荐的方法是什么?

命令

 echo | gcc -E -Wp,-v - 

将显示正在使用的包含path。

我不确定你的意思是通过推荐的方式来find包含path。 标准方式如下(对于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