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

时间:2015-01-27 23:26:45

标签: visual-studio qt visual-studio-2013 cmake qt5.3

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

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

我将此行添加到32位版本的CMakeLists.txt

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后,我选择了Release-Mode并将平台工具集更改为Visual Studio 2013 - Windows XP (v120_xp)

创建的32位二进制文​​件在Windows XP 64位上工作正常,64位二进制文​​件崩溃,“hello-world.exe遇到问题,需要关闭... ...”在Windows XP-64-位,

(编辑:但在Windows 7 64位上运行正常)。

我做错了什么? :(

1 个答案:

答案 0 :(得分:2)

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

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