使用autoconf时取消定义PACKAGE_VERSION

时间:2013-11-14 14:22:49

标签: gcc autotools automake

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

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

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

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

我是这个autotools的新手,所以也许这是一个新手问题。遗憾

1 个答案:

答案 0 :(得分:1)

这是一次不幸的碰撞 - 您可以尝试将CFLAGS=-UPACKAGE_VERSION添加到命令行中以取消定义它。

使用AC_CONFIG_HEADERS([config.h])(解释here)将阻止-D标志传递给编译器;那么,在你不想要定义的文件中,根本就不要#include "config.h"

但最终,如果您计划继续使用Autotools作为您的软件包,那么重构现有的定义会更好,因为保留它可能会导致难以跟踪的错误。