64 位 Qt 应用程序在 XP 64 位上崩溃(但在 Win7 64 位上不会崩溃)



我正在使用Windows 7(64位)开发Qt(5.3)应用程序。Visual Studio文件由CMake创建。这适用于适用于 Windows 7 的 32 位和 64 位二进制文件。CMake 生成器用于 32 位是 Visual Studio 12 2013 ,对于 64 位Visual Studio 12 2013 Win64

我也尝试为Windows XP创建二进制文件。

我将这一行添加到 CMakeList 中.txt适用于 32 位版本

SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,5.01")

和 64 位版本的这一行

SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,5.02")

我正在使用windeployqt来部署 QT 依赖项。

在运行CMake并启动生成的Visual Studio后,我选择了发布模式并将平台工具集更改为Visual Studio 2013 - Windows XP (v120_xp)

创建的 32 位二进制文件在 Windows XP 64 位上运行良好,64 位二进制文件崩溃并显示"hello-world.exe遇到问题,需要关闭。..."在 Windows XP-64 位上,

(编辑:但在Windows 7 64位上运行良好)。

我做错了什么?:(

我遇到了类似的问题,将子系统指定到链接器并没有解决它。但是以下解决方案对我来说效果很好:

ADD_CUSTOM_COMMAND(
    TARGET my_target
    POST_BUILD
    COMMAND editbin my_target.exe /SUBSYSTEM:WINDOWS,5.01 /OSVERSION:5.1)

最新更新