我完全困惑,嘗試了很多方法來測試它,但它仍然是瘋了。
我想定義一個C預處理器變量「DEBUG」(#define DEBUG)來激活一個開源項目中的調試日誌記錄,它使用GNU Autotools。所以我把行GNU Autotools:AC_DEFINE不起作用
AC_DEFINE(DEBUG, 1, [My description for DEBUG])
在configure.ac。
但是什麼? 再生config.h中
autoheader && ./config.status
我看的config.h的內容和看到這
/* My description for DEBUG */
/* #undef DEBUG */
到底什麼在這裏發生後?其他類似的C預處理器變量(項目)也以相同的方式定義。他們都出現了「#define」,並且沒有註釋,爲什麼我的成爲「#undef」,並且註釋掉了?
所以我嘗試了很多方法來做到這一點,不僅僅是這樣,我模仿了項目中其他符號的定義方式。嘗試各種各樣的值,從1到TRUE,FALSE,各種變量,從「DEBUG」到「FOOBAR」,「KJJJ」....但它仍然是這樣工作的,我完全沮喪。
更多信息:
當看着config.h.in,我看到所有的線條都是這樣:
#undef SOMEVARIABLE
(包括我的定義和的那些#config.h。)
當我不跑autoheader就,只是改變我的config.h.in變量的行
#define DEBUG
然後生成的config.h,那麼我的DEBUG變量出現有效#define'd在config.h中
* Autoconf的版本2.67
*我工作的這個項目是ibus
如果你只是想定義它來激活調試,你不需要編輯configure.ac。只需運行配置CPPFLAGS = -DDEBUG – 2012-01-27 16:33:38