概述
- 由于QT的集成开发环境QTCreate,在代码调试功能上远不及Visual Studio方便,因此,在Windows平台,可以使用Visual Studio来开发调试QT程序,本文章就主要介绍下,如何使用CMAKE编译QT5程序,并使用Visual Studio 2015来运行调试QT程序。
准备工作
- 首先安装QT5, 我使用的是QT5.9。然后安装Visual Studio 2015和cmake,cmake要配置环境变量。
- QT编译器介绍
- MSVC:Microsoft Visual C++ Compiler,即微软自己的编译器。
- MinGW:Minimalist GNU for Windows,它是将GNU开发工具移植到Win32平台下的产物,即一套Windows上的GNU工具集。
使用QT create创建工程
- 首先我们要用Qt create创建一个工程,完成界面布局。
- 选择编译器的时候要注意,因为我们要使用Visual Studio进行编译调试。因此这里编译器必须选择MSVC,我这里就选择MSVC2015 32位的编译器。
- 在UI界面完成简单布局,就可以关掉Qt Create了。
设置QT环境变量
- 接下来需要设置下QT的环境变量。找到QT的安装目录,然后找到编译器所在目录。
- 可以看到有好几个编译器,我们刚才创建工程时选择的是MSVC2015,这里就选择MSVC2015对应的目录。
- 然后要一直选到Qt5Config.cmake文件所在的目录
- 复制目录设置环境变量
- 这里注意,变量名一定要写成Qt5_DIR,如果使用的是QT4,变量名要写成QTDIR。路径最好不要包含中文。
- 设置完重启下电脑。
创建cmake文件
- 创建一个编译目录build_x86,和一个cmake文件
- 直接看下目录结构
-
├── build_x86 ├── CMakeLists.txt └── demo1 ├── demo1.pro ├── main.cpp ├── widget.cpp ├── widget.h └── widget.ui
- CMakeLists.txt内容
-
cmake_minimum_required(VERSION 3.10.0) project(QtDemo) #开启MOC、RCC和UIC,则会在预处理之前先进行MOC、RCC和UIC操作 set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) #查找需要的Qt包 find_package(Qt5 REQUIRED Core Gui Widgets) # 将各个文件夹下的所有文件打包 SET(SRC_LISTS ${PROJECT_SOURCE_DIR}/demo1/main.cpp ${PROJECT_SOURCE_DIR}/demo1/widget.cpp) # 包含头文件所在目录 include_directories(${PROJECT_SOURCE_DIR}/demo1) # 去除命令框 if(MSVC) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") endif() # 生成可执行程序 add_executable(QtDemo ${SRC_LISTS}) # 链接QT库 target_link_libraries(QtDemo Qt5::Core Qt5::Gui Qt5::Widgets)
编译运行
- 在build_x86目录下打开cmd,执行以下命令
-
cmake -G "Visual Studio 14 2015" .. cmake --build ./ --config Debug
- 如果成功,会在build_x86\Debug目录下生成可执行程序。
- 现在还无法运行,我们需要将QT安装目录下的库拷贝过来。
- 可以使用Everything全局搜索下
- 我们选择的是MSVC2015编译器,因此要拷贝对应编译器下的动态库
- 这时候直接双击可执行程序,就可以运行了
使用VS2015进行调试
- 如果需要调试,直接双击build_x86目录下的sln文件,就可以用VS2015打开了。
- 现在就可以直接在VS中调试QT程序了
- VS2015中无法打开QT的UI界面,因此如果还需要在UI界面继续添加控件,只需要双击工程下的pro文件,用Qt create打开重新设置界面就行了。