关于vc6编译的 C1001错误

前两天重新做了系统之后,发现vc6编译出现了错误,使用IDE正常,但使用命令行则出现下面的错误:

       \file.c(0) : fatal error
C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more
information
Error executing cl.exe.
       

根据网上的,官方的解释,安装sp6,依然无望,网上说使用了那个什么afx.h的文件,我也没用,C++,也没有用,然后发现及时编译一个什么都不做的程序也会出现这样的问题。

最后原因调查出来了,有点不可思议,问题在于-Gm这个参数,不加这个参数,则正常,添加上的话,就会出现那个问题,根据编译器的提示,这个应该是最小化编译的选项,搞不清楚问什么会出现这样的问题,总之解决了。

语言陷阱:armcc的Fatal error:0x0ce4

不要问我为什么,反正它就是发生了,我不能保证你的问题和我的情况一样。

今天编译的时候,出现了下列的错误:

Fatal error: Internal fault: 0x0ce4 in ‘xxxx’

xxxx为函数名,如果你在错误上点了的话,会跳转到程序的结尾,反正不在那个函数上(我用emacs,编译出错可以直接跳转岛错误的地方)。根据常识,这又是个不明的错误。我的代码结构大致如下:

继续阅读语言陷阱:armcc的Fatal error:0x0ce4

语言陷阱:ADS 1.2编译使用long long的诡异错误

本来是计划写关于erlang的mnesia的,在版本5.6.5会出现的一个问题,但我更新到了最新的5.7.4之后,问题消失了,即使使用5.6.5来编译也不会出现问题,只好不了了之。
不过,昨天,同事遇到了一个问题,在类似下面的代码中:


       static const long long flag = (1LL< <32)|(1LL<<34);
       void fun()
       {
       long long temp = flag;
       }

       

编译时,会出现诡异的Fatal error: Internal fault: 0xe6e5,但在我这边却没有出现,编译选项等等都是一样的。
只能使用下面的代码才能解决问题:

       void fun()
       {
       long long temp = (long long)flag;
       }
       

使用强制转换。