2011년 3월 13일
Conflicting String problem
자신만의 library에 String이라는 class를 만들게 되면
Windows에서는 괜찮지만
Linux에서는 다음과 같은 error에 직면하게 된다.
/usr/include/X11/Intrinsic.h:326: error: reference to ‘String’ is ambiguous.
리눅스 때문에 String이라는 좋은 이름을 두고
FString 등의 이름으로 바꿔야 하나 고민했지만,
google이 문제를 해결해주었다.
header 파일에 #include <String.h>을 해주기 전에 다음과 같은 처리를 해주면 된다.
#define String XString #include <X11/Intrinsic.h> /* include other X11 and Motif headers */ #undef String
http://www.informatik.uni-hamburg.de/RZ/software/gnu/libraries/g++FAQ_5.html