VS2015和QT5.5项目出现的诡异错误(LNK2001和LNK09)的解决办法

VS2015和QT5.5项目出现的诡异错误(LNK2001和LNK09)的解决办法

今天要把一个旧的QT项目移植到VS2015和QT5.5.1的环境下,没想到出现了诡异的错误,发费了不少时间才找到解决办法,现在把他记录下来,大家可以借鉴。
由于项目中许多文件保存的时候采用不同方式的编码,在导入后出现不少错误,编译的时候错误提示如下图:

VS2015和QT5.5项目出现的诡异错误(LNK2001和LNK09)的解决办法_第1张图片
首先将出现错误的文件编码在菜单-》文件-》高级保存选项中把编码都改为UTF-8。
VS2015和QT5.5项目出现的诡异错误(LNK2001和LNK09)的解决办法_第2张图片
更改完后,所有的编译错误都消失了。但是出现了LNK2001和LNK2109错误,错误如下:
VS2015和QT5.5项目出现的诡异错误(LNK2001和LNK09)的解决办法_第3张图片
奇怪的是参照网上一片博文《使用QWT产生error LNK2001的原因及解决方法》,博文地址:http://blog.hehehehehe.cn/a/10261.htm,在出现问题的类中注销掉Q_OBJECT,出现的LNK2001错误都不见了,但是还是存在LNK2109和LNK1120错误,百思不得其解,后来无意中想想和文件编码是否有关系,将所有文件的编码都改为简体中文(GB2312)-代码页936,问题居然全部解决。
VS2015和QT5.5项目出现的诡异错误(LNK2001和LNK09)的解决办法_第4张图片

你可能感兴趣的:(C++,GUI编程,移动开发)