IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Win10上CLion、CMake、MSVC/MinGW配置Qt开发 -> 正文阅读

[C++知识库]Win10上CLion、CMake、MSVC/MinGW配置Qt开发

简 述: 随笔记一下在 Win10 上使用 CLion + CMake 开发 Qt 配置;

  1. Win10 + CLion + CMake + MSVC(Visual Studio)+ Qt
  2. Win10 + CLion + CMake + gcc(MinGW)+ Qt

本文初发于 “偕臧的小站”,同步转载于此。


背景

? 预先安装 Win10、QtCrator、CMake 以及 CLion。若想使用 CLion 开发 Qt 就必须告知 Clion 和准备编译构建的项目,一些必要的参数配置。

? 💻: win10 21H1 📎 Qt 5.12.11 📎 Visual Studio 2017 📎 Qt Creator 4.15.0


预先配置项

配置 CMAKE_PREFIX_PATH(Qt 路径)

? CMAKE_PREFIX_PATH 的值为告知此项目使用的 Qt 的版本;即 Qt 安装路径。以下三种方式任选其一即可。

  • 新建项目时填写


  • 手动写在 CMakeLists.txt 中

    set(CMAKE_PREFIX_PATH "C:/Qt/Qt5.12.11/5.12.11/msvc2017")
    

  • 在设置中的 CMake 配置中的 CMake option: 中写参数

    -DCMAKE_PREFIX_PATH=C:/Qt/Qt5.12.11/5.12.11/msvc2017
    

配置 ToolChians(工具链)

当选中正确的 Environment 时,后面系类会自动检测出来正确的配置。可参考下图

  • 配置 MSVC(Visual Studio) 模式

  • 配置 gcc(MinGW)模式


配置构建 CMake 环境

? 告知系统使用哪一个 ToolChinas (工具集合)来处理此项目文件。是 MSCVC 还是 gcc 相关系的?


CLion 中运行 Qt 项目

? 经过上面的准备工作,最后在运行 CLion,按照步骤可看到最后成功运行。

  1. 配置 ToolChians、CMake
  2. 切换想要构建生成的配置方案(Debug/Relase/RelWithDebInfo/MinSizeRel、MSVC/MinGW)
  3. 执行编译 CMakeLists.txt 文件,生成 Makefile 文件;
  4. 编译上一步生成的 Makefile 文件,编译源文件、链接系统文件、生成目标二进制程序
  5. 加载所需要的系统和三方动态库等、运行生成的目标二进制程序
  6. 看到窗口运行成功
  7. 个人配置的集中生成目标文件的集中模式(可忽略此)

CMake 调用 Qt 语法

? CLion 自动生成的 CMakeLists.txt 文件配置内容,如下,简单介绍 CMake 语法。更详细的注释,可参考另一项目的此文件

cmake_minimum_required(VERSION 3.20)         # 最低 cmake 版本
project(XTest)                               # 此项目名称

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)                        # 启用 qt moc 的支持
set(CMAKE_AUTORCC ON)                        # 启用 qrc 资源文件的支持
set(CMAKE_AUTOUIC ON)                        # 启用 qt uic 的支持

set(CMAKE_PREFIX_PATH "C:/Qt/Qt5.12.11/5.12.11/msvc2017")  # Qt 的安装路径

find_package(Qt5 COMPONENTS                  # 查找 Qt5 的如下库
        Core
        Gui
        Widgets
        REQUIRED)

add_executable(XTest main.cpp)               # 生成目标文件 XTest
target_link_libraries(XTest                  # 链接 Qt5 的如下二进制库
        Qt5::Core
        Qt5::Gui
        Qt5::Widgets
        )
        
if (WIN32)                             # 可忽略,大意为未配置或尝试找不到 Qt 安装目录,则警告
    set(DEBUG_SUFFIX)
    if (CMAKE_BUILD_TYPE MATCHES "Debug")
        set(DEBUG_SUFFIX "d")
    endif ()
    set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
    if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
        set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
        if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
            set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
        endif ()
    endif ()
    if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E make_directory
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
    endif ()
    foreach (QT_LIB Core Gui Widgets)
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/bin/Qt5${QT_LIB}${DEBUG_SUFFIX}.dll"
                "$<TARGET_FILE_DIR:${PROJECT_NAME}>")
    endforeach (QT_LIB)
endif ()


  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 11:43:10  更:2021-09-03 11:43:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:41:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码