如何使用msvc 2019编译QT 4 DLL?

如何使用msvc 2019编译QT 4 DLL?,qt,Qt,我有一个使用Qt4.6.2的老项目,它在VS2008上运行。我能够用msvc 2019工具链在VS 2019中编译它,但它在运行时崩溃了。我发现出现这个问题是因为当我使用QString::TostString()函数时,它涉及使用msvc90.dll(VS2008)的QTCore4.dll,但当销毁std::string时,应用程序使用msvc2019。这种不匹配最终导致应用程序崩溃 我想通过使用msvc 2019重新编译QTCore4.dll来修复它,但不知道如何做到这一点。我通过安装QT获得

我有一个使用Qt4.6.2的老项目,它在VS2008上运行。我能够用msvc 2019工具链在VS 2019中编译它,但它在运行时崩溃了。我发现出现这个问题是因为当我使用QString::TostString()函数时,它涉及使用msvc90.dll(VS2008)的QTCore4.dll,但当销毁std::string时,应用程序使用msvc2019。这种不匹配最终导致应用程序崩溃

我想通过使用msvc 2019重新编译QTCore4.dll来修复它,但不知道如何做到这一点。我通过安装QT获得了dll,但没有关于如何重新编译它的说明

这是可能的还是封闭源代码?
我认为升级到Qt5也是一种选择,但我现在想继续使用Qt4。

Qt5在很大程度上与Qt4源代码兼容。首先,我强烈建议您尝试针对Qt5编译您的项目(并解决任何小问题)。 如果需要Qt声明性模块,如果必须,可以根据qt5编译它


也就是说,Qt是在开源LGPL许可下发布的

您可以从github获取Qt 4源代码:


构建Qt4需要安装perl并运行configure,然后是nmake(对于VisualStudio)。您将使用Visual Studio 2019,并可能修复2019版编译器发现的代码不兼容问题。

Qt 5在很大程度上与Qt 4源代码兼容。首先,我强烈建议您尝试针对Qt5编译您的项目(并解决任何小问题)。 如果需要Qt声明性模块,如果必须,可以根据qt5编译它


也就是说,Qt是在开源LGPL许可下发布的

您可以从github获取Qt 4源代码:


构建Qt4需要安装perl并运行configure,然后是nmake(对于VisualStudio)。您将使用Visual Studio 2019,并可能修复2019版编译器发现的代码不兼容问题。

我建议获取此处的Qt-4.8.7源代码;在.zip或.tar.gz中,在从Visual Studio 2019命令提示符进行配置之前,先安装Active State Perl和Python;在.zip或.tar.gz中,在通过Visual Studio 2019命令提示符进行配置之前,先安装活动状态Perl和Python。