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])(explanation here ) を使用すると、-Dフラグがコンパイラに渡されなくなります。次に、定義が不要なファイルでは、単純にしないでください#include "config.h"

ただし、最終的には、パッケージに引き続き Autotools を使用する予定がある場合は、既存の定義をリファクタリングすることをお勧めします。これを保持すると、後で追跡が困難なエラーが発生する可能性があるためです。

于 2013-11-15T07:58:19.613 に答える