我有一个包含多个宏的库,它在 AIX 上编译得很好,但现在我需要编译相同的代码,而且宏似乎停止工作。我不断收到消息:
error: pasting "::" and "EVENT_DATA" does not give a valid preprocessing token.
有没有办法让 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.