我有一个项目使用名为PACKAGE_VERSION的定义进行某些验证。
当我使用autoconf创建一个makefile时,我发现每次编译时,autconf都添加了-DPACKAGE_VERSION = 1.2(因为那是我在AC_INIT中使用的版本)
该定义与我的应用程序使用的de define冲突。如何防止autoconf这样做?我尝试使用AM_SUBST_NOTMAKE(PACKAGE_VERSION),但没有变化。
我不想重构应用程序更改常量的名称,我只想让autoconf不添加我不需要的定义。
我是这个autotools的新手,所以也许这是一个新手问题。遗憾
答案 0 :(得分:1)
这是一次不幸的碰撞 - 您可以尝试将CFLAGS=-UPACKAGE_VERSION
添加到命令行中以取消定义它。
使用AC_CONFIG_HEADERS([config.h])
(解释here)将阻止-D
标志传递给编译器;那么,在你不想要定义的文件中,根本就不要#include "config.h"
。
但最终,如果您计划继续使用Autotools作为您的软件包,那么重构现有的定义会更好,因为保留它可能会导致难以跟踪的错误。