SGI STL这次在VS2003下头死活通不过了,感觉VS2003还不如VS2002
首先,我知道有STLPort,可是感觉STLPort实在太大,编译起来乱七八糟的东西也很多,摸不着头脑,而且STLPort也还没有正式支持VS2003,在它的论坛上,关于VS2003下头的编译工作也没有一个标准的解决方案。
作为最正统的STL出品者,SGI 推出了一个带IOStream的STL实现版本,可惜最近的版本也就是在2000年6月8号的了。下载地址如下:
http://www.sgi.com/tech/stl/stdlib_20000608.tar.gz
我曾经在VC6,VC7里头都成功地编译过这个STL,当然,需要对stl_config.h文件作一些修改,重定义一些编译期的常量,不过总的来说,过程还算顺利,没有遇到解决不了的大问题。
MS推出2003没多久,各位大牛竞相发言,对其推崇备至,我不知道这种情况到底是由于2003真的有这么好,还是Stan个人的魅力所致,亦或者是微软这次真的给我们这些C++爱好者们送上了一份厚礼。
照常,我用2003来编译SGI的STL,可是这一次问题出来了,下面是VS2003给出的错误信息:
/************************************************************************
d:\STL\stl_alloc.h(306) : fatal error C1001: 内部编译器错误
(编译器文件“msc1.cpp”的第 2701 行)
。请选择 Visual C++
“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件获得详细信息
/************************************************************************
为了这个问题我昨天到今天忙活了一天了,仍然没有任何结果,编译器的选项如下:
/************************************************************************
/Od /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_MBCS" /Gm /EHsc /RTC1 /MLd /Fo"Debug/" /Fd"Debug/vc70.pdb" /W3 /nologo /c /Wp64 /ZI /TP
/************************************************************************
MSDN上面说C1001错误大部分是错误的优化所导致,可是由命令参数可以看出我并未使用任何优化,于是这个问题一直就解决不了。发贴求助,希望能获得完美的解决方法。