我们使用自动构建系统来下载和编译源代码。我控制编译行为的唯一接口是通过设置 ENV VAR 和给“./configure”的参数。
问题在于(我正在编译的特定源的)“配置”脚本会检查系统头文件,如果找到该文件,则会对编译过程产生不利影响。 (当找到上述系统头文件时,编译过程将避免编译它认为已经安装在本地系统上的库。)
由于这是一个自动化过程,因此我无法以任何方式修改“配置”脚本,并且如上所述只能指定传递给“配置”的环境变量和参数。配置脚本使用 AC_CHECK_HEADERS 宏生成代码来检查系统文件。是否有办法避免从配置参数中检查特定系统文件?
麻烦的头文件在/usr/include/pcap/路径下。
谢谢
您可以尝试以下几件事:
AC_CHECK_HEADERS
中删除 foo.h并始终构建库
AC_CHECK_HEADER
代替 foo.h 并检查 /usr/include/pcap/
foo.h,如果 AC_DEFINE(HAVE_FOO_H)
foo.h存在,则不要使用
/usr/include/pcap/
。AC_ARG_ENABLE
或 AC_ARG_WITH
通过 configure
的参数逐个主机地关闭违规测试。 所以这个问题的答案是肯定的。所有这些都假设您可以修改
configure.ac
并重新生成 configure
。 如果您做不到这一点,您可能需要修改 configure
(当然,以自动方式)。