令人费解的编译错误:error C2144: syntax error : 'double' should be preceded by ';' 和 error C3646: ';' : unknown override specifier
今天编程莫名其妙的出现了以下两个编译错误:
1>e:\日常学习\plsa_nmf\plsa_nmf\sutil.h(10): error C3646: ';' : unknown override specifier
1>e:\日常学习\plsa_nmf\plsa_nmf\sutil.h(10): error C2144: syntax error : 'void' should be preceded by ';'
或者显示成
1>e:\日常学习\plsa_nmf\plsa_nmf\query.cpp(17): error C3646: ';' : unknown override specifier
1>e:\日常学习\plsa_nmf\plsa_nmf\query.cpp(17): error C2144: syntax error : 'double' should be preceded by ';'
它指示文件query.cpp的17行有问题,在至于后面的编译错误其实是第一个编译错误引起的。
在vs2010编译环境下,不仔细看,很难发现输出编译信息中的';'和';'的区别。
另外,就算看出来了,你在编译器指示的文件query.cpp中也找不到';',这个分号不知道是在哪里出现的,通过查看编译信息,我们
可知,这个错误是在编译query.cpp时出现的,其实,最简单的解决方法就是,对整个项目进行查询,看看那些地方出现了';',这样
可以很快解决问题。
当你没有遇到过或者不记得这种错误的时候,估计你会苦恼一会儿,其实类似这种错误,都是因为字符的格式不对引起的。以后编程要
多加注意。另外,不要太相信编译器,编译器上的提示仅仅可以作为参考,像这个问题上,编译器指示的文件就不是问题出现的那个文件,
其实问题出现的那个文件是在query.h中。