windows10下vscode+cmake编译Qt5代码
概述
- 本文演示环境: windows10
- cmake version:3.18
- qt version: 5.14
- vscode version: 1.54.1
- 本文演示环境基于在线模式, 离线使用VScode,待验证。
准备
安装 cmake, 添加cmake到系统环境变量path中, 打开命令行, 键入 cmake --version, 得到类似下面的输出,则证明cmake安装成功

也可不用添加到系统环境变量,这只是我个人习惯,因为自己还有其他项目需要用到cmake, 添加到系统环境变量path后,使用更加便捷。 按需选择。安装VScode后,需要安装插件: cmake 和 cmake tools,

qt安装,傻瓜式安装,下一步下一步即可。
qt安装需要需要注意
qt安装时,需要选择对应的工具包。 因为我使用的是Windows10 ,机器也安装了 vs2015 + vs2017 , 这里以 Vs2015 x64为例。 我的选择如下图

我这里安装的目录如下:
C:\major\development\qt_5.14.2\install

其中,C:\major\development\qt_5.14.2\install\5.14.2\msvc2015_64目录待会用得上,下面讲。
Qt creator
使用Qt Creator, 创建一个基于cmake编译的widgets项目,名为demo_qt,演示使用嘛, 毕竟要看到效果,其他类似

创建结束后,注意, 需要找到文件ui_dialog.h,并将文件ui_dialog.h拷贝到创建的项目下与 CMakeLists.txt同级目录,(踩坑总结: 使用Vscode+cmake+qt编译时,提示找到不到该文件)

VScode + qt+ cmake
使用Vscode打开上面创建的项目demo_qt所在文件夹。
配置 cmake . 按下 ctrl + ,(VS code左下角 manage -> settings)

输入: cmake, 配置cmake.exe所在的绝对路径。

配置 CMakeLists.txt文件,需要自己手动增加如下的代码
set(CMAKE_PREFIX_PATH "C:/major/development/qt_5.14.2/install/5.14.2/msvc2015_64")
这里的路径, 就是上面qt安装的工具包所在路径,一定要设置这行,这一代码的目的是设置cmake找到qt5对应的 .cmake文件(qt5gui.cmake qt5core.cmake之类的)。

CmakeLists.txt
不习惯qt创建的CMakeLists.txt文件语法,自己改了部分,全文内容如下
cmake_minimum_required(VERSION 3.5)
project(demo_qt LANGUAGES CXX)
# ----------------------------------------------------------------------------------
# 手动添加下面这一行代码
set(CMAKE_PREFIX_PATH "C:/major/development/qt_5.14.2/install/5.14.2/msvc2015_64")
# set(Qt5_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5")
# set(Qt5Widgets_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Widgets")
# set(Qt5Gui_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Gui")
# set(Qt5Core_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Core")
# set(QT_QMAKE_EXECUTABLE "${CMAKE_PREFIX_PATH}/bin/qmake.exe")
# ----------------------------------------------------------------------------------
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
# -----------------------------------------------------------------------------
# 个人更习惯下面的方式
file(GLOB_RECURSE src_files ${CMAKE_CURRENT_SOURCE_DIR}/*.cc)
file(GLOB_RECURSE inc_files ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
file(GLOB_RECURSE ui_files ${CMAKE_CURRENT_SOURCE_DIR}/*.ui)
# -----------------------------------------------------------------------------
# 创建项目 ${PROJECT_NAME} 是我手动替换的
add_executable(${PROJECT_NAME} ${inc_files} ${src_files} ${ui_FILES} )
# ----------------------------------------------------------------------------
# ${PROJECT_NAME} 是我手动替换的
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)
cmake语法不是本文的重点,请移步 cmake官网
编译开始
到这里,目录结构应该是这样的

使用快捷键: ctrl + shift + p, 键入命令执行编译。
1.先 cnmake:configure
ctrl + shift + p, 键入命令cmake:configure执行配置,生成makefile文件。 该命令会在程序所在主目录创建名为Build的目录,存放输出结果:

2. cmake:build
ctrl + shift + p,键入: cmake:build. 编译后,查看结果

编译结果, 正确,没有error(s)

此时,可以看到 build目录下的 debug目录下已经生成了 对应的可执行程序

3. cmake:debug
- ctrl + shift + p,键入命令: cmake:debug. 运行起来, 程序一闪而过, 且出现如下的输出提示

明白了, 程序demo_qt.exe所在目录 缺少qt运行文件,比如:Qt5Guid.dll, Qt5Cored.dll 等。 - 使用 windeployqt.exe 打包 demo_qt所需的运行环境。windeployqt.exe所在目录如下
C:\major\development\qt_5.14.2\install\5.14.2\msvc2015_64\bin
这时我的qt安装目录, 请自行对应。
回到 build/debug目录,命令行转到此目录, 键入命令如下命令
C:\\major\\development\\qt_5.14.2\\install\\5.14.2\\msvc2015_64\\bin\\windeployqt.exe demo_qt.exe
执行后,等待自动拷贝。 拷贝结束后,会发现debug目录多了很多文件

- 回到VScode, 再次执行命令: cmake:debug, 会发现程序调试运行成功。

完
windows10下vscode+cmake编译Qt5代码的更多相关文章
- windows10下vscode+cmake编译Qt5代码(2)
概述 本文依赖 前文 本文将介绍使用cmake语法屏蔽运行Qt exe的cmd窗口 解决办法 配置VS项目属性, 缺点: cmake重新 configure后,项目属性会重置,再次运行还将出现cmd弹 ...
- windows10使用vscode+cmake编译c++代码
概述 本文将介绍 VScode + cmake 在 windows10上编译c++代码 前提: 我之前已经安装过VS2017, 故 编译将采用cl.exe. 开始之前 本文演示环境基于 windows ...
- win10下VSCode+CMake+Clang+GCC环境搭建
win10下VSCode+CMake+Clang+GCC环境搭建 win10下VSCode+CMake+Clang+GCC环境搭建 安装软件 VSCode插件安装 新建文件夹, 开始撸代码 main. ...
- centos 7 vscode cmake 编译c++工程
一.环境说明 1)gcc/g++ cmake安装建议 gcc/g++内核自带的即可,如果需要新的自行安装, cmake也一样,如有需要新的版本自行安装. 2)vscode安装插件 必要的插件c/c+ ...
- CentOS_5.6下使用cmake编译MySQL_5.5.11
MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采用这种方式,网上找了一些安装方法有些地方是错的,自己整理一份 所以特地记录一下安装步骤及过程,以供参考!1 mysql 5 ...
- CentOS_5.6下使用cmake编译MySQL_5.5.11教程
注:资料来自网络 Centos 5.6编译安装mysql 5.5.11 2011年06月24日 星期五 05:33 MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采 ...
- windows下使用cmake编译zlib与libpng libjpeg
win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/, 选择最新版本的windows版本压缩包,进行下载. jpeg ...
- CentOS下使用cmake编译安装mysql
一.下载安装所必需的依赖包 1.因为高版本mysql都用cmake安装,所以下载cmake wget http://www.cmake.org/files/v3.0/cmake-3.0.1.tar.g ...
- 在ubunt14.04(linux)下利用cmake编译运行opencv程序
今天在电脑上安装好了opencv环境,迫不及待的想写个程序来测试一下.但是在windows下我们用vs等集成开发工具.可是在linux下我们应该怎么办呢? 这里我们用了opencv推荐的cmake来编 ...
随机推荐
- Java 读取TXT文件的多种方式
1).按行读取TXT文件package zc;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFound ...
- lua table与json的之间的互相转换高性能c++实现
请自行约束两种语言数据结构语法上的不同,避开如下问题: 1.json本身不约束key是否符合一个编程语言中的变量名,所以编写用于和编程语言数据结构交互的json代码时应该注意key是否正确. 2.lu ...
- euerka总结
一.euerka的基本知识 1. 服务治理 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理 在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系 ...
- javaSE高级篇3 — 网络编程 — 更新完毕
网络编程基础知识 先来思考两个问题( 在这里先不解决 ) 如何准确的找到一台 或 多台主机? 找到之后如何进行通讯? 网络编程中的几个要素 IP 和 端口号 网络通讯协议:TCP / UDP 最后一句 ...
- MapReduce03 框架原理InputFormat数据输入
目录 1 InputFormat数据输入 1.1 切片与MapTask并行度决定机制 问题引出 MapTask并行度决定机制 Job提交流程源码 切片源码 1.2 FileInputFormat切片机 ...
- centos服务器上挂载exFat U盘
有些场景,我们需要在服务器上插入U盘,但是现在的U盘或者移动硬盘,大多都是exFat格式的,有时候linux系统识别不了,可以按照以下方式挂载. 1.安装nux repo(可以不装) yum inst ...
- 数组实现堆栈——Java实现
1 package struct; 2 3 4 //接口 5 interface IArrayStack{ 6 //栈的容量 7 int length(); 8 //栈中元素个数(栈大小) 9 int ...
- 石墨文档Websocket百万长连接技术实践
引言 在石墨文档的部分业务中,例如文档分享.评论.幻灯片演示和文档表格跟随等场景,涉及到多客户端数据同步和服务端批量数据推送的需求,一般的 HTTP 协议无法满足服务端主动 Push 数据的场景,因此 ...
- vue中vuex的五个属性和基本用法
VueX 是一个专门为 Vue.js 应用设计的状态管理构架,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data ). Vuex有五个核心概念: state, ge ...
- vue 项目如何使用animate.css
Animate.css是一款酷炫丰富的跨浏览器动画库,它在GitHub上的star数至今已有5.3万+. 在vue项目中我们可以借助于animate.css,用十分简单的代码来实现一个个炫酷的效果!( ...