环境
系统:Windows 10专业版
CMake版本:3.31.5
Visual Studio版本:2019
Qt版本:5.15.2
准备工作
1.安装CMake,并确保CMake的运行程序添加到环境变量中;
2.安装Visual Studio 2019,并确保勾选了“使用C++的桌面开发”;
3.安装通信灵码IDE,并登录(非必须,可以用Visual Studio Code代替,或直接用CMD);
4.安装Qt5,并记住其目录。
操作步骤
1.在“CMake-Qt程序编译”的基础上,在“CMake”目录下,新建一个名为“Widget”的文件夹,然后在“Widget”文件夹中,添加下面三个文件:
Widget.cmake
# 使用GLOB_RECURSE命令递归查找当前目录下所有.h头文件,存储到HEADER_WIDGETS变量中
file(GLOB_RECURSE HEADER_WIDGETS "${CMAKE_CURRENT_LIST_DIR}/*.h")
# 使用GLOB_RECURSE命令递归查找当前目录下所有.cpp源文件,存储到SRC_WIDGETS变量中
file(GLOB_RECURSE SRC_WIDGETS "${CMAKE_CURRENT_LIST_DIR}/*.cpp")
ModuleWidget.h
// 和CMakeLists.txt一个目录
#include <QWidget> // 包含Qt基础窗口部件类
// 自定义模块窗口部件类,继承自QWidget
class ModuleWidget : public QWidget
{
Q_OBJECT // 启用Qt的信号槽机制
public:
// 构造函数,parent参数指定父对象,默认为nullptr
ModuleWidget(QWidget* parent = nullptr);
};
ModuleWidget.cpp
// 和CMakeLists.txt一个目录
#include <QWidget> // 包含Qt基础窗口部件类
// 自定义模块窗口部件类,继承自QWidget
class ModuleWidget : public QWidget
{
Q_OBJECT // 启用Qt的信号槽机制
public:
// 构造函数,parent参数指定父对象,默认为nullptr
ModuleWidget(QWidget* parent = nullptr);
};
添加完成,目录结构如下图所示:

2.修改CMakeLists.txt文件,内容如下:
CMakeLists.txt
cmake_minimum_required(VERSION 3.15.0)
project(study_cmake)
set(CMAKE_AUTOMOC ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
include(Widget/Widget.cmake)
add_executable(${PROJECT_NAME} main.cpp ${SRC_WIDGETS} ${HEADER_WIDGETS})
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)
target_include_directories("${PROJECT_NAME}" PRIVATE ${CMAKE_CURRENT_LIST_DIR}/Wid“moget)
3.修改MainWidget.cpp,修改后内容如下:
MainWidget.cpp
// 和CMakeLists.txt一个目录
#include "MainWidget.h" // 包含MainWidget类声明
#include <QDebug> // 包含调试输出功能
#include "ModuleWidget.h" // 包含ModuleWidget类声明
// MainWidget构造函数实现
MainWidget::MainWidget(QWidget* parent)
: QWidget(parent) // 调用父类QWidget的构造函数
{
// 输出当前函数名到调试信息
qDebug() << __FUNCTION__;
// 设置窗口大小为100x100像素
this->resize(100, 100);
// 创建ModuleWidget实例,this作为父对象
ModuleWidget* pWidget = new ModuleWidget(this);
}
4.点击菜单栏中的“终端”->“新建终端”,然后在命令行中分别执行下面两条命令(等第一条执行完,再执行第二条):
//终端路径为CMakeLists.txt所在目录
//其中CMAKE_PREFIX_PATH的值请修改成实际安装的目录
cmake -S . -B WIN -DCMAKE_PREFIX_PATH=C:\Qt\5.15.2\msvc2019_64\lib\cmake
cmake --build .\WIN\
执行成功,如下图所示:

浙公网安备 33010602011771号