1

我有一个项目使用名为 PACKAGE_VERSION 的定义进行某些验证。

当我使用 autoconf 创建 makefile 时,我发现每次编译时,autconf 添加了一个 -DPACKAGE_VERSION=1.2(因为这是我在 AC_INIT 中使用的版本)

该定义与我的应用程序使用的定义冲突。如何防止 autoconf 这样做?我尝试使用 AM_SUBST_NOTMAKE(PACKAGE_VERSION) 但没有任何变化。

我不想重构更改常量名称的应用程序,我只想让 autoconf 不添加我不需要的定义。

我是这个自动工具的新手,所以也许这是一个新手问题。对不起

4

1 回答 1

2

这是一个不幸的冲突 - 您可以尝试添加CFLAGS=-UPACKAGE_VERSION到您的命令行以取消定义它。

使用AC_CONFIG_HEADERS([config.h])此处解释)将阻止-D标志被传递给编译器;然后,在您不想要定义的文件中,根本不要#include "config.h".

但是,最终,如果您打算继续为您的包使用 Autotools,最好重构现有的定义,因为保留它可能会导致难以追踪的错误。

于 2013-11-15T07:58:19.613 回答