【发布时间】:2011-01-22 03:43:54
【问题描述】:
是否只是为了测试编译一个简单的程序,并在其中包含那个头文件?
为了更好地理解编译过程,我正在编写自己的“配置”,它会测试一些头文件和库文件是否存在。
【问题讨论】:
-
你有文件名和包含目录的列表。为什么不检查文件是否在其中?
-
@Nikolai:不这样做的一个原因是“标题”标题本身可能包含其他文件,并且很难通过检查它们是否存在来检查它所依赖的那些文件是否存在全部存在而不是尝试编译。
-
@Jonathan:我明白这一点。当然,这完全取决于项目的范围,但我会递归搜索
include指令。 -
@Nikolai:当心受保护的包含 - 有时标头有一个在本地平台上永远不会激活的 #include 行。确定是否包含该标头需要 C 预处理器。是的,可以做到;让 C 预处理器来做这件事可能更容易。
-
@Nikolai:最大的问题是你并不总是知道编译器会在哪里寻找文件,尤其是系统或第三方库。特别是在 Unix 上,安装多个编译器或同一编译器的不同版本并不罕见。或者将库安装在非标准位置。