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

Tags:,

Add a Comment