我想知道使用GNU Autotools处理所需标头的最佳实践解决方案。这是我configure.ac
AC_CHECK_HEADERS_ONCE(argp.h)
如果系统中缺少argp.h
,那么configure将只是宣告
...
checking for argp.h... no
...
但对此无动于衷。当然,程序将无法编译,因为预期的标头不存在,并且在#ifdef HAVE_ARGP_H
指令中包含include,并且可能添加#else #error [...]
结构将做我想要的,但它似乎相当乏味的。
是否有一种很好的方法可以在配置时间错误输出缺少但需要的标题而不是编译时间?
谢谢, 安迪
答案 0 :(得分:1)
将您的AC_CHECK_HEADERS_ONCE
来电替换为:
AC_CHECK_HEADER([argp.h], [], AC_MSG_ERROR([cannot find required header argp.h]))
此变体不会定义HAVE_ARGP_H
,但您无论如何都不需要它,因为您的代码无条件地需要该标头。该错误会停止配置过程。