You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake中qmake CONFIG -= console的等价配置(关闭QML应用控制台)

解决方案

问题原因

你当前的CMakeLists.txt存在两处错误导致配置不生效:

  • 重复定义了APSMDClient构建目标:你在Qt版本判断逻辑中已经完成了目标的第一次定义,后续额外添加的add_executable(APSMDClient WIN32 ${SOURCE_FILES})属于重复定义,不会生效,且该行用到的SOURCE_FILES变量并未提前声明。
  • 关闭控制台所需的WIN32参数没有添加到第一次的目标定义语句中。

正确修改方案

CMake中Windows平台下关闭控制台窗口的等价配置,就是给可执行目标的构建语句添加WIN32参数,对应修改你的CMakeLists.txt如下:

  1. 先删除末尾多余的重复定义行:
# 删掉这行完全无效的代码
add_executable(APSMDClient WIN32 ${SOURCE_FILES})
  1. 修改Qt版本判断分支中的目标定义语句,添加WIN32参数:
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    # 这里添加WIN32参数
    qt_add_executable(APSMDClient WIN32
        ${PROJECT_SOURCES}
    )

    qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
else()
    if(ANDROID)
        add_library(APSMDClient SHARED
            ${PROJECT_SOURCES}
        )
    else()
        # 非Android的Qt5版本也添加WIN32参数
        add_executable(APSMDClient WIN32
          ${PROJECT_SOURCES}
        )
    endif()

    qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
endif()
  1. 如果你需要同时兼容macOS平台,只需要在WIN32后面额外添加MACOSX_BUNDLE参数即可。

修改完成后清空构建目录重新编译,控制台窗口就不会再弹出了。

内容的提问来源于stack exchange,提问作者Евгений Дружинин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 14:15:04