私は完全に混乱しています。それをテストする方法は多岐にわたりますが、それはまだ狂っています。
オープンソースプロジェクトでデバッグログを有効にするために、Cプリプロセッサ変数 "DEBUG"(#define DEBUG)を定義しようとしていますが、GNU Autotoolsを使用しています。だから私はconfigure.acでGNU Autotools:AC_DEFINEは機能しません
AC_DEFINE(DEBUG, 1, [My description for DEBUG])
ラインを置きます。
しかし何ですか? はconfig.hの
autoheader && ./config.status
を再生した後、私はconfig.hの内容を見て、一体ここで何が起こったこの
/* My description for DEBUG */
/* #undef DEBUG */
を参照してください?他の同様のCプリプロセッサ変数(プロジェクトによる)も同様に定義されています。彼らはすべて "#define"と表示され、コメントがなく、なぜ私の "#undef"になりコメントアウトされましたか?
私はそれを行うために多くの方法を試しました。この方法だけでなく、プロジェクトの他のシンボルが定義されている方法を模倣します。 の値、1から真、偽、すべての変数から、 "DEBUG"から "FOOBAR"、 "KJJJ"までのすべての種類のものを試してみました....しかし、それはまだそれのように動作します、私は完全に挫折しています。
さらに詳しい情報:
config.h.inを見たとき、私は全ての行は次のようにしている参照してください。
#undef SOMEVARIABLE
(私の定義し、いるものも含めて有効に表示される#config.hに#defined'd。
私はautoheaderはを実行し、ちょうどconfig.hのを生成し、その後
#define DEBUG
にconfig.h.inに私の変数の行を変更しない場合は、その後、私のDEBUG変数が#define'd有効に表示されますconfig.hの
* Autoconfのバージョン2.67
*に私が働いているプロジェクトがibus
デバッグを有効にするためだけに定義する場合は、configure.acを編集する必要はありません。ちょうどCPPFLAGS = -DDEBUGでconfigureを実行してください –