由于MSVC和Qt库的版本不同而链接错误

时间:2013-02-04 17:25:09

标签: qt qt5

我在使用MSVC 2012编译器编译Qt项目时遇到问题。我先下载了Qt,然后意识到我还没有正确的编译器,然后下载了Microsoft Visual Studio Express 2012及其msvc编译器。 但是,每当我尝试在Qt Creator中编译某些内容时,它都会出现以下错误:

qtmain.lib(qtmain_win.obj):-1: LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match with value '1700' in glwidget.obj

所以我理解这意味着我的Qt库与我的msvc编译器的版本不同(较旧)。但我不知道如何解决它,或者如何获得其他/更新的库。一些谷歌搜索告诉我,以下代码添加到Qt .pro文件应解决问题:

QMAKE_COMPILER_DEFINES  += _MSC_VER=1700 WIN32

但这没有任何效果。此外,使用'1600'而不是'1700'没有帮助。什么会有什么想法?

我正在使用32位Windows 7系统,如果有任何帮助,我正在使用Qt 5.0.0。

2 个答案:

答案 0 :(得分:3)

您需要为Visual Studio 2012编译二进制文件。由于没有可用的官方(或非官方)预编译二进制文件,您需要自己编译它们。

This should not be complicated process,但对初学者来说可能很难并且令人沮丧,所以我建议你按照已经给出的建议并下载VS2010(毕竟,这将需要下载和安装它的时间比从源代码编译Qt少。

答案 1 :(得分:1)

您必须使用MSVC 2010,因为库是使用它构建的。试试Visual C++ 2010 Express