不知道有沒有人遇到過,我在VC6.0+STLPORT-4.6.2的環境下編譯ACE version 5.4.3的Release版本,編譯器報內部錯誤C1001: INTERNAL COMPILER ERROR。后來在google上找了些國外的論壇,大概都是說是預編譯頭的問題,后來摸索了下搞定了。
在編譯的時候出現如下錯誤提示:
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
這顯然是編譯器出了問題。然而在編譯Debug版本卻不會出現,說明Debug與Release版的頭文件組織的結構不一樣,經過反復琢磨發現如下解決辦法。
打開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了。還有問題的話,再往下調整。