如何解决什么相当于 CMAKE 中的 qmake.pro 文件CONFIG -= 控制台
我已经构建了 QML 应用程序并运行它。但除了 GUI 运行控制台。我知道如何在 qmake(.pro 文件)CONFIG -= 控制台中关闭控制台。但我不明白它在 CMake 中是如何工作的?我试过 QML opens GUI window and console 但它没有帮助我。
CMakeLists.txt
cmake_minimum_required(VERSION 3.14)
project(APSMDClient LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# QtCreator supports the following variables for Android,which are identical to qmake Android variables.
# Check https://doc.qt.io/qt/deployment-android.html for more information.
# They need to be set before the find_package(...) calls below.
#if(ANDROID)
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
# if (ANDROID_ABI STREQUAL "armeabi-v7a")
# set(ANDROID_EXTRA_LIBS
# ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
# ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
# endif()
#endif()
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Quick Qml LinguistTools QuickControls2 REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick LinguistTools QuickControls2 REQUIRED)
set(TS_FILES APSMDClient_ru_RU.ts)
set(PROJECT_SOURCES
main.cpp
qml.qrc
${TS_FILES}
)
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
qt_add_executable(APSMDClient
${PROJECT_SOURCES}
)
qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
else()
if(ANDROID)
add_library(APSMDClient SHARED
${PROJECT_SOURCES}
)
else()
add_executable(APSMDClient
${PROJECT_SOURCES}
)
endif()
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
endif()
# Added
add_executable(APSMDClient WIN32 ${SOURCE_FILES})
target_link_libraries(APSMDClient PRIVATE Qt6::QuickControls2 Qt6::Qml)
target_compile_definitions(APSMDClient
PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(APSMDClient
PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick)
解决方法
要禁用控制台窗口,您可以使用
add_executable(APSMDClient WIN32 ${PROJECT_SOURCES})
或
add_executable(APSMDClient ${PROJECT_SOURCES})
if (WIN32)
set_target_properties(APSMDClient PROPERTIES WIN32_EXECUTABLE TRUE)
endif()
qt_add_executable
是 add_executable
的 Qt 包装器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。