rwa*_*ace 64 c linux gcc c-preprocessor
我正在尝试以编程方式#include在Linux上找到路径,据我所知,在实践中意味着找到GCC认为它的内容.(这是真的吗?Clang怎么做?)
根据http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html,一些组件涉及CPU架构和GCC版本; 后者尤其显得棘手; 我想它可以通过运行gcc --version和解析输出(或gcc -v)来获得,但这看起来不够优雅,最糟糕的是脆弱.假设一个程序正在使用GCC编译,从一个代码中执行它可能是另一种选择,但它需要依赖于该假设.
建议的方法是什么?
caf*_*caf 134
命令
echo | gcc -E -Wp,-v -
Run Code Online (Sandbox Code Playgroud)
将显示正在使用的包含路径.
dev*_*ull 18
我不确定你的推荐方法是什么意思找到包含路径.的标准是如以下给出(对于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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71783 次 |
| 最近记录: |