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

时间:2020-12-23 13:44:20

标签: qt

我有一个使用 QT 4.6.2 的旧项目,它在 VS 2008 上运行。我能够在 VS 2019 中使用 msvc 2019 工具链对其进行编译,但它在运行时崩溃。我看到问题发生是因为当我使用 QString::toStdString() 函数时,它涉及使用 msvc90.dll (VS2008) 的 QTCore4.dll,但在销毁 std::string 时,应用程序使用 msvc2019。这种不匹配会导致应用崩溃。

我想通过使用 msvc 2019 重新编译 QTCore4.dll 来修复它,但不知道如何执行此操作。我通过安装 QT 获得了 dll,但没有说明如何重新编译它。

它甚至可能还是闭源? 我认为升级到 QT 5 也是一种选择,但我现在想继续使用 QT 4。

1 个答案:

答案 0 :(得分:2)

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


话虽如此,Qt 是在开源 LGPL 许可下发布的。

您可以从 github 获取 Qt 4 源代码:https://github.com/qt/qt

构建 Qt 4 包括安装 perl 并运行 configure,然后运行 ​​nmake(用于 Visual Studio)。您将为 Visual Studio 2019 need to set up some new things,并可能修复 2019 版编译器挖掘出的代码不兼容性。

相关问题