Sunday, February 06, 2011

Compilation error! ACE 5.8.0 with MinGW

오래 묵혀둔 느낌이랄까. ACE를 빌드하는 것은 항상 뭔가 오래된 분위기가 든다.

분위기는 좋았는데, 컴파일 오류가 발생한다. 기존의 다른 버전은 잘 되는 것이 안된다.

로그를 보면 아래와 같다.

 Visual Studio 2008에서는  빌드에 문제가 없지만, MinGW에서는 깨진다. 파고 들 시간이 없을 땐.... ACE dev팀의 수정을 기다리는 수 밖에... --;
   ==> 이런거 기다리지 말고
[업데이트] 개발하고 있는 안정 버전을 사용하고 있지 않으면, 가급적 최신 버전을 사용하자.




$ make
make[1]: Entering directory `/c/devel/lib/ACE_Wrappers/ace'


GNUmakefile: /c/devel/lib/ACE_Wrappers/ace/GNUmakefile.ACE MAKEFLAGS=w


g++ -Wpointer-arith -mthreads -mtune=pentiumpro -Wno-attributes -Wall -W -O3 -g
-pipe    -pipe -DACE_HAS_CUSTOM_EXPORT_MACROS=0   -Ic:/devel/lib/ACE_Wrappers -
ACE_HAS_EXCEPTIONS -DACE_NO_INLINE -I.. -DACE_BUILD_DLL  -c  -o .shobj/Name_Spa
e.o Name_Space.cpp
In file included from c:/devel/lib/ACE_Wrappers/ace/config-all.h:89:0,
                 from c:/devel/lib/ACE_Wrappers/ace/Assert.h:20,
                 from c:/devel/lib/ACE_Wrappers/ace/Global_Macros.h:31,
                 from c:/devel/lib/ACE_Wrappers/ace/String_Base.h:19,
                 from c:/devel/lib/ACE_Wrappers/ace/SString.h:23,
                 from c:/devel/lib/ACE_Wrappers/ace/Name_Space.h:24,
                 from Name_Space.cpp:4:
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:192:18: error: variable 'ACE_Proper_Exp
rt_Flag ACE_Main_Base' has initializer but incomplete type
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:192:18: warning: extended initializer l
sts only available with -std=c++0x or -std=gnu++0x
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:194:1: error: expected primary-expressi
n before 'public'
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:194:1: error: expected '}' before 'publ
c'
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:194:1: error: expected ',' or ';' befor
 'public'
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:196:26: error: expected class-name befo
e '(' token
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:198:35: error: 'virtual' outside class
eclaration
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:198:39: error: function 'int run_i(int,
char**)' is initialized like a variable
c:/devel/lib/ACE_Wrappers/ace/OS_main.h:199:1: error: expected declaration befo
e '}' token
make[1]: *** [.shobj/Name_Space.o] Error 1
make[1]: Leaving directory `/c/devel/lib/ACE_Wrappers/ace'
make: *** [ACE] Error 2




※ 아래 메일링 리스트에서도 누군가가 동일한 문제를 올려 놓았군... 하지만, 답변은 없음.



※   오늘 ACE 웹 사이트를 보니 ACE-6.0.0.tar.bz2가 있군.. 빌드에 문제가 없음... 좋아좋아.

다시한번 더...  [업데이트] 개발하고 있는 안정 버전을 사용하고 있지 않으면, 가급적 최신 버전을 사용하자.