由于MSVC和Qt库版本不同导致连接错误

3

我在使用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个回答

3
你需要编译适用于Visual Studio 2012的二进制文件。由于没有官方或非官方的预编译二进制文件可用,因此您需要自己编译它们。
这个过程不应该很复杂,但对于初学者来说可能会很难和令人沮丧,所以我建议您遵循已经给出的建议,并下载VS2010(毕竟,下载和安装它要比从源代码编译Qt花费更少的时间)。

1

好的... 那么没有办法更新 Qt 库,或者在所有情况下都添加某种标志以使其成为可能吗? - Yellow
2
只需使用MSVC 2012重新构建Qt即可。 - york.beta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接