不知道有沒(méi)有人遇到過(guò),我在VC6.0+STLPORT-4.6.2的環(huán)境下編譯ACE version 5.4.3的Release版本,編譯器報(bào)內(nèi)部錯(cuò)誤C1001: INTERNAL COMPILER ERROR。后來(lái)在google上找了些國(guó)外的論壇,大概都是說(shuō)是預(yù)編譯頭的問(wèn)題,后來(lái)摸索了下搞定了。
在編譯的時(shí)候出現(xiàn)如下錯(cuò)誤提示:
Message_Block.cpp
E:MYPERSONALSTLPORT-4.6.2STLPORTstl/type_traits.h(68) : fatal error
C1001: INTERNAL COMPILER ERROR
(compiler file ''msc1.cpp'', line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
這顯然是編譯器出了問(wèn)題。然而在編譯Debug版本卻不會(huì)出現(xiàn),說(shuō)明Debug與Release版的頭文件組織的結(jié)構(gòu)不一樣,經(jīng)過(guò)反復(fù)琢磨發(fā)現(xiàn)如下解決辦法。
打開ACE_wrappersace目錄下的Message_Block.cpp文件:
?

#include?"ace/Log_Msg.h"
#include?"ace/Malloc_Base.h"
#include?"ace/Guard_T.h"
#include?"ace/OS_NS_string.h"

//#define?ACE_ENABLE_TIMEPROBES
#include?"ace/Timeprobe.h"
把包含的Log_Msg.h的頭放到Guard_T.h后面,就ok了。還有問(wèn)題的話,再往下調(diào)整。