2013-11-14 37 views
1

我有一個使用名爲PACKAGE_VERSION的定義進行某些驗證的項目。使用autoconf時未定義PACKAGE_VERSION

當我創建使用的autoconf一個makefile,我發現,每編譯,autconf增加了-DPACKAGE_VERSION = 1.2(因爲這是我使用AC_INIT版本)定義爲在衝突與去定義

我的應用程序使用。如何防止autoconf這樣做?我嘗試使用AM_SUBST_NOTMAKE(PACKAGE_VERSION),但沒有改變。

我不想重構更改常量名稱的應用程序,我只想讓autoconf不添加一個我不需要的定義。

我是新來的這個自動工具,所以也許這是一個新手問題。對不起

回答

1

這是一個不幸的碰撞 - 你可以嘗試添加CFLAGS=-UPACKAGE_VERSION到你的命令行來取消定義它。

使用AC_CONFIG_HEADERS([config.h])(說明here)將阻止-D標誌傳遞給編譯器;那麼,在你不想定義的文件中,根本不需要#include "config.h"。但是,如果你打算繼續爲你的包使用Autotools,最好重構現有的定義,因爲保持它很可能會導致難以追蹤的錯誤。