【发布时间】:2014-06-17 19:44:18
【问题描述】:
在 Autoconf 中,当您想检查某些标头是否存在时,您可以:
AC_CHECK_HEADERS([foo.h])
现在,假设我有一个包 sponge,pkg-config 知道它,我想知道它是否有一个名为 spongefoo.h 的标头。
我可以做到以下几点:
PKG_CHECK_MODULES([SPONGE])
CPPFLAGS="$CPPFLAGS $SPONGE_CFLAGS"
AC_CHECK_HEADERS([spongefoo.h])
这可行,但 Autoconf/Automake 文档说(我在括号中添加的内容):
“有时包开发人员很想设置用户变量,例如'CFLAGS' [我补充说,'CPPFLAGS'],因为这似乎使他们的工作更容易。但是,包本身不应该设置用户变量,[ ...] 为了解决这个问题,Automake 引入了一个 automake 特定的影子变量 [named AM_CPPFLAGS]"
但是,AC_CHECK_HEADERS() 和其他测试宏不知道 Automake 的影子变量。
那么我如何正确检查一个包是否有一些标头?
(顺便说一句,AC_CHECK_HEADER() 得到了第 4 个参数,“INCLUDES”,但这是一个逐字的 '"#include"' 文本,而不是 '"-I..."' 开关,所以它没有'对我帮助不大。)
【问题讨论】:
标签: autoconf automake pkg-config