新建一个文件夹test用于本次项目的测试,新建两个文件分别为CMakeLists.txt和main.cxx
cmake_minimum_required (VERSION 3.15)
project(Test LANGUAGES CXX)
add_executable(${PROJECT_NAME} main.cxx)
#include
int main()
{
std::cout << "hello world." << std::endl;
return 0;
}
使用Qt打开项目选中CMakeLists.txt 注意:Qt 5.15以下版本的Qt需自行安装CMake
按Ctrl+R点击编译运行即可看到hello world
已经在控制台正常的打印,说明我们的CMake项目已经构建成功。
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)
#include
#include
#include
#include
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();
}
再次编译运行可以看到我们的数字时钟已经可以正常的显示运行了
可以看到使用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
项目依赖库