我有一個包含多個宏的庫,它在AIX上編譯得很好,但現在我需要編譯相同的代碼,看起來宏停止工作。 我不斷收到的消息:宏在Linux上停止編譯
有沒有一種方法,使在Linux上的行爲C++預處理器就像在AIX上。 我在linux上使用g ++,在AIX上使用xlc_r。
這是一個宏。
#define E_TRA_INMOD(MName, Comp) \
static const ES_TracMg::ES_TracComps ES_TracComp = \
ES_TracMg::##Comp; \
static char* ES_Mod_Namp = MName; \
static unsigned long ES_SerMas = \
ES_TracMg::m_MServ[ES_TracMg##Comp];
我這樣稱呼它E_TRA_INMOD("Error", EVENT_DATA);
的錯誤是:
error: pasting "::" and "EVENT_DATA" does not give a valid preprocessing token.
什麼是錯誤信息?或者你得到了什麼,你不喜歡? – 2013-02-25 18:10:05
錯誤消息是:錯誤:粘貼「::」和「EVENT_DATA」不提供有效的預處理令牌。 – Lefsler 2013-02-25 18:10:38
您可以使用'cpp'程序在預處理後查看您的源代碼 – ShPavel 2013-02-25 18:16:39