首先,新建Qt Console Application项目。
下面对CMakeLists.txt进行次理解。新建好后,Qt Creator会生成CMakeLists.txt,具体内容如下:
cmake_minimum_required(VERSION 3.16)
project(EasyCppMain LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
add_executable(EasyCppMain
main.cpp
)
target_link_libraries(EasyCppMain Qt${QT_VERSION_MAJOR}::Core)
include(GNUInstallDirs)
install(TARGETS EasyCppMain
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
下面对上述内容进行解析,都来自于文档。
- cmake_minimum_required:指定当前最小的cmake版本。
- VERSION:版本号上面的3.16;
- project:设置项目名。
- LANGAGES:设置语言为CXX,就是C++,这里可以思考一个问题,为什么用X来代表+呢?这里我个人猜测是+应该算是特殊字符了,用X是普通字符吧。这只是个人猜测。
- set:用于设置各类数据的值。
- CMAKE_AUTOUIC:开启Qt中uic的自动编译;
- CMAKE_AUTOMOC:开启Qt中moc的自动编译;
- CMAKE_AUTORCC:开启Qt中rcc的自动编译;
- find_package:找包,找库,通常用于找外部项目。
- QT:要找的包名为QT;
- NAMES QT6 QT5:按顺序查找,先找Qt6,再找Qt5;
- REQUIRED:如果没有找到指定的包,则会停止配置并抛出错误。这表示 Qt 是这个项目必须的依赖。
- COMPONENTS Core:Qt组建为Core;
- QT_VERSION_MAJOR:为Qt的主版本号;
- add_executable:添加一个可执行的程序,并且添加会被使用到的.cpp文件。
- target_link_libraries:链接目标程序时指定需要包含的库和标签。
- include:装载其他cmake文件或模块。
- GNUInstallDirs:Qt中GUI相关的安装目录
- install:程序编译完成后的安装规则。
- LIBRARY DESTINATION:目标库文件的安装位置;
- RUNTIME DESTINATION:可执行文件安装位置;