0

GNUAutotoolsで必要なヘッダーを処理するためのベストプラクティスソリューションについて疑問に思っていました。これは私の1行ですconfigure.ac

AC_CHECK_HEADERS_ONCE(argp.h)

システムにがない場合、argp.hconfigureは宣言するだけです

...
checking for argp.h... no
...

しかし、それについては何もしません。もちろん、期待されるヘッダーが存在しないため、プログラムはコンパイルに失敗し、インクルードを#ifdef HAVE_ARGP_Hディレクティブでラップし、場合によっては#else #error [...]構成を追加すると、私が望むことを実行できますが、かなり面倒なようです。

コンパイル時ではなく、構成時に欠落しているが必要なヘッダーをエラーにする良い方法はありますか?

ありがとう、アンディ

4

1 に答える 1

1

Replace your AC_CHECK_HEADERS_ONCE call with:

AC_CHECK_HEADER([argp.h], [], AC_MSG_ERROR([cannot find required header argp.h]))

This variant won't define HAVE_ARGP_H, but you don't need that anyway since your code requires that header unconditionally. The error stops the configure process.

于 2013-02-16T08:01:41.420 に答える