我最近遇到了一个库,它在公共头文件中使用了像HAVE_FEATUREFOO
这样的变量。如何在公共头文件中正确使用`AC_DEFINE`和`AC_DEFINE_UNQUOTED`定义的变量?
它还包括它们的声明#include "config.h"
。这些声明也用于结构声明中,并有条件地删除结构成员。用于库构建的值的不一致性以及依赖程序的构建将导致内存损坏。
因此,使用该库和它的头可能导致以下结果:
#include "config.h"
失败,- 或在运行时内存损坏。
我对自动工具非常陌生,但经过我发现的一些研究后,他们使用AC_DEFINE
or AC_DEFINE_UNQUOTED
进行了定义。而且,config.h
使用AC_CONFIG_HEADERS
生成。
随着进一步的研究,我发现include_HEADERS
,它安装标题。并且,标题config.h
正确安装,如果它被添加到列表中。
是不是正确的做法,通过AC_CONFIG_HEADERS
安装config.h
自动工具生成的头文件?