目录
1. 创建一个普通C++项目 2. 创建一个Qt项目 3. CMake术语解释
1. 创建一个普通C++项目
新建一个文件夹test用于本次项目的测试,新建两个文件分别为CMakeLists.txt和main.cxx
CMkeLists.txt
text
1
2
3
4
5
6
7
cmake_minimum_required (VERSION 3.15)
project(Test LANGUAGES CXX)
add_executable(${PROJECT_NAME} main.cxx)
main.cxx
text
1
2
3
4
5
6
7
8
9
#include <iostream>
int main()
{
std::cout << "hello world." << std::endl;
return 0;
}
使用Qt打开项目选中CMakeLists.txt 注意:Qt 5.15以下版本的Qt需自行安装CMake 按Ctrl+R点击编译运行即可看到hello world已经在控制台正常的打印,说明我们的CMake项目已经构建成功。
2. 创建一个Qt项目
CMakeLists.txt更改如下
text
1
2
3
4
5
6
7
8
9
10
11
12
13
cmake_minimum_required (VERSION 3.15)
project(Test LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt6 COMPONENTS Widgets REQUIRED)
add_executable(${PROJECT_NAME} main.cxx)
target_link_libraries(${PROJECT_NAME} Qt6::Widgets)
main.cxx更改如下
text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <QApplication>
#include <QLCDNumber>
#include <QTimer>
#include <QDateTime>
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
QLCDNumber lcd;
QTimer t;
QObject::connect(&t,&QTimer::timeout,[&lcd](){
lcd.display(QDateTime::currentDateTime().toString("hh:mm:ss"));
});
t.start(1000);
lcd.setDigitCount(8);
lcd.display(QDateTime::currentDateTime().toString("hh:mm:ss"));
lcd.resize(280,100);
lcd.show();
return a.exec();
}
再次编译运行可以看到我们的数字时钟已经可以正常的显示运行了
3. CMake术语解释
可以看到使用CMake构建Qt项目还是比较简单的,这里对于CMake构建Qt经常会用到的变量做个简单的解释:
cmake_minimum_required 用于构建CMake项目CMake最低版本 project 项目名称 LANGUAGES 项目用于,这里CXX代表使用C++语言 CMAKE_INCLUDE_CURRENT_DIR 自动添加当前源码和编译路径到头文件路径 CMAKE_AUTOUIC 转换UI文件 CMAKE_AUTOMOC 转换MOC文件 CMAKE_AUTORCC 转换资源文件 CMAKE_CXX_STANDARD 使用C++版本 CMAKE_CXX_STANDARD_REQUIRED 为ON时必须指明C++版本 find_package 查找包 add_executable 编译为可执行文件 target_compile_definitions 项目宏定义 target_link_libraries 项目依赖库