여러 매크로가있는 라이브러리가 있는데, AIX에서 제대로 컴파일되지만 이제는 동일한 코드를 컴파일해야하며 매크로가 작동하지 않는 것 같습니다. 나는 메시지를 수신 유지 :매크로에서 매크로 컴파일이 중지되었습니다.
error: pasting "::" and "EVENT_DATA" does not give a valid preprocessing token.
AIX에서와 같이 리눅스 행위에 C++ 프리 프로세서를 만들 수있는 방법이있다. 저는 리눅스에서 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.
오류 메시지가 무엇인가요? 또는 당신은 무엇을 얻고 당신은 싫어합니까? –
오류 메시지 : 오류 : 붙여 넣기 "::"및 "EVENT_DATA"가 유효한 전처리 토큰을 제공하지 않습니다. – Lefsler
'cpp'가 전처리를 거부하는 경우가 아니라 – ShPavel