1

我正在使用 Windows 7(64 位)开发 Qt(5.3)应用程序。Visual Studio 文件由 CMake 创建。这适用于 Windows 7 的 32 位和 64 位二进制文​​件。32 位的 CMake 生成器是Visual Studio 12 201364 位的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")

我正在使用windeployqtQT 依赖项的部署。

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

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

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

我究竟做错了什么?:(

4

1 回答 1

2

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

ADD_CUSTOM_COMMAND(
    TARGET my_target
    POST_BUILD
    COMMAND editbin my_target.exe /SUBSYSTEM:WINDOWS,5.01 /OSVERSION:5.1)
于 2015-02-08T12:18:30.273 回答