首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何包含可能存在或可能不存在的头文件?

如何包含可能存在或可能不存在的头文件?
EN

Stack Overflow用户
提问于 2012-07-19 21:32:31
回答 2查看 8.8K关注 0票数 9

假设我在foo.h中定义了BAR。但是foo.h可能不存在。我如何包括它,而不让编译器抱怨我呢?

代码语言:javascript
运行
复制
#include "foo.h"

#ifndef BAR
#define BAR 1
#endif

int main()
{
    return BAR;
}

因此,如果BAR在foo.h中定义为2,则如果foo.h存在,程序将返回2,如果foo.h不存在,则返回1。

EN

Stack Overflow用户

发布于 2012-07-19 21:40:30

使用像GNU Autoconf这样的工具,这就是它设计的目的。(在windows上,您可能更喜欢使用CMake)。

所以在你的configure.ac中,你会有这样的一行:

代码语言:javascript
运行
复制
AC_CHECK_HEADERS([foo.h])

在运行configure之后,它将定义HAVE_FOO_H,您可以这样进行测试:

代码语言:javascript
运行
复制
#ifdef HAVE_FOO_H
#include "foo.h"
#else
#define BAR 1
#endif

如果您打算沿着autotools路线走(即autoconf和automake,因为它们很好地一起工作),我建议您从这个excellent tutorial开始。

票数 8
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11569659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档