【发布时间】:2011-04-26 11:59:24
【问题描述】:
如何获取系统包含的 C 预处理器的搜索路径?这适用于解析任意源文件并需要知道它们#include 的头文件的完整路径名的脚本。让我们暂时忽略用户可以使用编译器标志更改此搜索路径序列。我更喜欢使用 POSIX 系统上的标准工具的解决方案,这样我的脚本几乎不依赖任何东西。
我试过了:
cpp -v </dev/null | unusually_complex_filter
但这显然没有考虑到像$C{,PLUS}_INCLUDE_PATH 这样的事情。要知道#include <vector> 的向量在哪里,我想我必须知道搜索路径的精确顺序。
【问题讨论】:
-
似乎 cpp -v /null 输出诸如“--with-gxx-include-dir=/usr/include/c++/4.4”之类的东西,这对您有帮助吗?
-
这因语言而异(最明显的是 C 与 C++),具体取决于编译器。您打算如何处理在 makefile 中使用 CPPFLAGS 变量的项目?什么是purpose of your script?
标签: preprocessor posix c-preprocessor