Clion配置Qt+MSVC/MinGW环境

Clion配置Qt+MSVC/MinGW环境 (正在持续更新)

  • Clion配置Qt+MSVC/MinGW环境
    • 1. QT中的编译器
    • 2. 两种编译器的优势劣势
    • 3. Clion + Qt - MSVC 配置
      • 3.1 Clion 、 Qt-MSVC 下载安装
      • 3.2 Clion项目创建
      • 3.2 项目设置
      • 3.3 构建运行
    • 4. Clion + Qt - MinGW 配置(接下来会更新)

Clion配置Qt+MSVC/MinGW环境

1. QT中的编译器

QT 中存在着两种编译方式,一种是MSVC,另一种是MinGW。在windows下使用clion写C++可以使用g++(windows下叫MinGW),也可以使用msvc(微软的编译器,必须下载Visual studio)

  1. MSVC (Mirosoft Visual C++ Compiler)是指微软的VC编译器
  2. MinGW是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库

安装QT时,一般情况下会选择其中一种。不能同时安装msvc和mingw的QT库。

2. 两种编译器的优势劣势

基于Windows环境的MinGW在进行deug时部分指针等变量并不兼容。

3. Clion + Qt - MSVC 配置

3.1 Clion 、 Qt-MSVC 下载安装

Clion-2021.3.2(各个版本均可不限制) Qt-5.x(最好是5.14之前-5.0之后,编译器MSVC2017_64)MSVC(VS2017)-VC15(安装VS2017,其他版本可能不支持)
安装过程自行百度 教程较多

3.2 Clion项目创建

各软件安装结束后,打开Clion,新建工程,注意两点:

  1. QT widgets exe 选择Qt widget项目
  2. Qt Cmake prefix path 选择自己的Qt安装目录下的msvc路径

最终create创建
Clion配置Qt+MSVC/MinGW环境_第1张图片
项目自动生成 main.cpp 、 cmakelists.txt

cmake_minimum_required(VERSION 3.21)
project(MSVC_Qt)

#set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -Wall -fexec-charset=GBK”)
set(CMAKE_CXX_STANDARD 14)

##############  QT 设定开始  ###############
#打开Qt的MOC、UIC、RCC等功能
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# 设置Qt5的cmake模块所在目录,如果不设置将使用系统提供的版本
set(CMAKE_PREFIX_PATH "E:/progLanguage/Qt/Qt5.9.0/5.9/msvc2017_64")
# 从上面的目录找到对应的qt模块,名字为qmake中QT += 中的name首字母大写后加上Qt5前缀
#find_package(Qt5Widgets REQUIRED NO_DEFAULT_PATH)
find_package(Qt5 COMPONENTS
        Core
        Gui
        Widgets
        REQUIRED)
##############  QT 设定结束  ###############

############### 最终输出 设定 ##############
add_executable(MSVC_Qt main.cpp)
target_link_libraries(MSVC_Qt
        Qt5::Core
        Qt5::Gui
        Qt5::Widgets
        )
# 设定exe输出目标路径
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
# 设定库dll的输出路径
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/lib)

################ Qt 其他相关设定-拷贝相关dll/a到执行文件目录下  大意为未配置或尝试找不到 Qt 安装目录,则警告  ###############
if (WIN32) 
    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
                "$/plugins/platforms/")
        add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                COMMAND ${CMAKE_COMMAND} -E copy
                "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
                "$/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"
                "$")
    endforeach (QT_LIB)
endif ()
#include 
#include 
int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QPushButton button("Hello world!", nullptr);
    button.resize(200, 100);
    button.show();
    return QApplication::exec();
}

3.2 项目设置

File->Setting->Build->toolcains

  1. 点击+号
  2. 选择VS项目
  3. ToolSet设定vs2017安装目录
  4. Arch选择amd64
  5. 如果有其他编译器,最终记得上箭头调整VS至最高并显示默认
    Clion配置Qt+MSVC/MinGW环境_第2张图片

3.3 构建运行

输出显示正常
Clion配置Qt+MSVC/MinGW环境_第3张图片

4. Clion + Qt - MinGW 配置(接下来会更新)

MinGW 虽然可以使用,但是在结合于QT-Opencv、QT-GDAL等第三方库时会极为繁琐-劝退

你可能感兴趣的:(Clion,Qt,MSVC,qt,windows,c++,visual,studio)