以编程方式检查头文件是否存在的最佳方法?

时间:2010-03-01 02:43:46

标签: c++ c configure

是否只是测试编译一个简单的程序,其中包含头文件#include?

为了更好地理解编译过程,我正在编写自己的“configure”,它测试是否存在一些头文件和库文件。

3 个答案:

答案 0 :(得分:6)

是的,使用编译器编译简单的测试程序。这是查看编译器是否可以找到标头的最佳和最简单的方法。如果你硬编码#include搜索路径,你将不得不修改和适应不同的编译器。

答案 1 :(得分:4)

GNU Autoconf套件通过运行测试编译来检查标头。只测试文件'filename.h'的存在就相当简单了:

#include <filename.h>
int main(void){return 0;}

您可能更喜欢引号而不是尖括号。

答案 2 :(得分:-1)

使用以下程序,您可以找到头文件的存在。

#include<stdio.h>
main()
{
        FILE * file;
        if ((file = fopen("/usr/include/stdio.h", "r"))!=NULL)
        {
                fclose(file);
                printf("true");
        }
        perror("err");

}