【Qt 01】cmake搭建Qt VS2019开发环境

文章目录


准备

编码:vscode

debug: vs2019 + Qt vs Tools 插件

c++包管理工具:vcpkg

项目构建:cmake

安装好上述工具后。

第一步:安装Qt5 库

使用vcpkg

bash 复制代码
PS D:\cppsoft\vcpkg> .\vcpkg.exe install qt5

第二步:编写CMakeLists.txt

项目结构:

复制代码
PS D:\MyProject\qt-code\Qt5Demo> tree /F
卷 系统文件 的文件夹 PATH 列表
卷序列号为 67C3-157C
D:.
│  CMakeLists.txt
│  main.cpp
│  mainwindow.cpp
│  mainwindow.h
│  mainwindow.ui
│  resource.qrc
│
└─resource
    └─image

参考下面的案例

c 复制代码
cmake_minimum_required(VERSION 3.10)  #cmake版本最低3.10

# 设置CMAKE工具链
set(CMAKE_TOOLCHAIN_FILE "D:/cppsoft/vcpkg/scripts/buildsystems/vcpkg.cmake")

# 获取当前子CMake文件所在目录的完整路径 
get_filename_component(CURRENT_DIR_PATH "${CMAKE_CURRENT_LIST_DIR}" ABSOLUTE) 
# 从完整路径中提取目录名称 
get_filename_component(CURRENT_DIR_NAME "${CURRENT_DIR_PATH}" NAME)

# 设置项目名称
project(${CURRENT_DIR_NAME})

set(CMAKE_CXX_STANDARD 11) 

if(MSVC)
	add_compile_options(/Zc:__cplusplus)
endif()

# 自动包含当前目录
SET(CMAKE_INCLUDE_CURRENT_DIR ON)

# 自动生成moc文件
SET(CMAKE_AUTOMOC ON)
# 自动生成rcc文件
SET(CMAKE_AUTORCC ON)
# 自动生成uic文件
SET(CMAKE_AUTOUIC ON)

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

file(GLOB UI_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.ui")
file(GLOB RCC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*qrc")
file(GLOB HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${CMAKE_CURRENT_BINARY_DIR}/*.h")
file(GLOB CPP_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")

qt5_wrap_ui(UI_HEADERS ${UI_FILES})

source_group("Form Files" FILES ${UI_FILES})
source_group("Resource Files" FILES ${RCC_FILES})


# win32表示关闭控制台窗口
add_executable(${PROJECT_NAME} WIN32 ${HEADER_FILES} ${CPP_FILES} ${UI_FILES} ${RCC_FILES})

# 链接库
target_link_libraries(${PROJECT_NAME} 
	Qt5::Widgets
	Qt5::Core
	Qt5::Gui
)

第三步:编写批处理文件

编写好CMakeLists.txt后可以使用cmake构建,但为了更方便控制,我们可以再编写一个批处理文件来运行cmake命令

案例:这里call后需要改为你的vs2019的vcvarsamd64_x86.bat路径

c 复制代码
mkdir build
cd build
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
cmake  -G "Visual Studio 16 2019"  -A x64 -DCMAKE_BUILD_TYPE=Debug  ..
cd ../
pause

运行批处理文件后,便可以再build目录下找到 .sln (vs工程)

这里打开后可能还需要将项目设置为启动项。

到这里一个Qt 工程就创建好了。

其他

配置Qt VS Tools

再vs2019扩展商店里搜索Qt,下载下面这个插件(如果没有魔法,连不上扩展商店,找其他方式下载)

点击Qt VS Tools的options

将这些选项设为true(如果你之后不想使用Qt Designer也可以不使用)

此时便可以使用Qt Designer打开 .ui 文件

(如果打开失败,原因估计是找不到Qt Desinger,右键 --> 打开方式,自己配置一个Qt Desinger,这里是Qt Desinger需要自己去官网或其他地方下载)

qt 源码调试配置

在开发过程中,如果想通过断点进入到 qt 源码中,我们可以配置pdb文件。

PDB文件(Program Database File)是Microsoft Visual Studio编译生成的调试信息文件,主要用于存储程序的符号信息(如函数名、变量名、行号等),使调试器能将机器代码与源代码对应,从而辅助开发人员定位问题。

右键点击vs 2019 解决方案 进入属性中,添加相应的源码路径

然后设置pdb文件,pdb文件需要使用Debug编译生成。由于我们使用vcpkg安装了qt5,它已经生成了pdb文件

路径:D:\cppsoft\vcpkg\installed\x64-windows\debug\bin

点击工具 --> 选项 --> 调试 ---> 符号

到这里就可以通过断点进入源码。

疑问

初始的.ui, .qrc文件如何生成?

Qt Creator 左上角新建 .ui文件,qrc同理使用 Qt Resource Editor

当然可以自己手动编写ui文件

相关推荐
fundroid2 小时前
Rust 为什么不适合开发 GUI
开发语言·后端·rust
三体世界3 小时前
C++ List的模拟实现
java·c语言·开发语言·数据结构·c++·windows·list
MobiCetus3 小时前
【C++重点】虚函数与多态
java·开发语言·c++
啊阿狸不会拉杆7 小时前
第十五章:Python的Pandas库详解及常见用法
开发语言·python·数据分析·pandas
Antonio9159 小时前
【Q&A】QT有哪些状态模式的设计?
qt·ui·状态模式
@hdd9 小时前
QScreen 捕获屏幕(截图)
qt·屏幕捕获·qscreen
rqtz9 小时前
【C++指针】搭建起程序与内存深度交互的桥梁(下)
开发语言·c++·指针
AI让世界更懂你9 小时前
Python 包管理器 UV 全面介绍
开发语言·python·uv
IT猿手10 小时前
基于烟花算法(Fireworks Algorithm,FWA)及三次样条的机器人路径规划,50个场景任意选择,完整MATLAB代码
开发语言·算法·机器学习·matlab·机器人·无人机
SNAKEpc1213810 小时前
在MFC中使用Qt(三):通过编辑项目文件(.vcxproj)实现Qt的自动化编译流程
c++·qt·mfc