今天编译一个老版的旧库时,突然出现该问题,并引起了一系列的莫名其妙的问题;
网上通常说出现该问题是由于新写的数据结构或者类与调用的库或者系统库中的类或者数据结构同名引起的,这是一方面,今天我这里要记录是另外一种情况:编码问题
现在各种开发工具的IDE通常保存的文件编码格式为utf-8,但是在windows平台下面还有一种utf8-bom的编码,如果文件存储的编码与IDE中设置的编码不相同时也会出现这样的错误;
我使用的qtcreator时,出现该问题,最终是把uft8的文件转为了utf8-bom后解决的;
对于文件编码引起的各类莫名其妙的问题,比如容易判断的一种方法是:根据IDE的错误提示,如果双击错误,IDE编译工具如果不能够精确的跳转到指定的错误行,跳转的行明显和错误提示不一样时,通常都是由于文件编码不正常引起的;
综上所述,源文件编码类型很重要,哈哈;
1,数据结构或者类与调用的库或者系统库中的类或者数据结构同名;
2,源文件编码与IDE中编码不同,通常为uft8-bom为好(windows);