使用Qt 6创建第一个CMAKE项目

白色玫瑰 程序猿

时间: 2023-07-16 阅读: 1 字数:3291

{}
1. 创建一个普通C++项目 新建一个文件夹test用于本次项目的测试,新建两个文件分别为CMakeLists.txt和main.cxx CMkeLists.txt cmake_minimum_required (VERSION 3.15) project(Test LANGUAGES CXX) add_...

目录

<a href="#1_C_1">1. 创建一个普通C++项目</a> <a href="#2_Qt_28">2. 创建一个Qt项目</a> <a href="#3_CMake_73">3. CMake术语解释</a>

1. 创建一个普通C++项目

新建一个文件夹test用于本次项目的测试,新建两个文件分别为CMakeLists.txt和main.cxx

CMkeLists.txt

cmake_minimum_required (VERSION 3.15)

project(Test LANGUAGES CXX)

add_executable(${PROJECT_NAME} main.cxx)

main.cxx

#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更改如下

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更改如下

#include <QApplication>
#include <QLCDNumber>
#include <QTimer>
#include <QDateTime>

int main(int argc,char *argv[])
{
   QApplication a(argc,argv);

   QLCDNumber lcd;
   QTimer t;
   QObject::connect(&amp;t,&amp;QTimer::timeout,[&amp;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 项目依赖库

原文地址:https://blog.csdn.net/m0_46144825/article/details/113095611?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168949707716800215098447%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168949707716800215098447&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-24-113095611-null-null.142^v88^insert_down1,239^v2^insert_chatgpt&utm_term=%E6%80%8E%E4%B9%88%E6%89%93%E5%BC%80qt6%E9%A1%B9%E7%9B%AE

本文章网址:https://www.sjxi.cn/detil/9bf945ad399a4e5dbf7d119885b5b5d2

最新评论

当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复