首页 > 其他分享 >QT编译时qmake和cmake的区别

QT编译时qmake和cmake的区别

时间:2023-09-05 14:37:15浏览次数:46  
标签:文件 CMakeLists cmake QT 应用程序 生成 添加 qmake 模板

qMake

QT += core gui QT缺省使用了core和gui库

变量TARGET描述了目标文件的名称,即生成的应用程序的名字,默认采用工程文件所在的文件夹名字。

变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件,有以下5种模板:

  1. 应用程序 app,为建立一个Qt应用程序创建模板Makefile文件
  2. 库 lib,为建立应用程序库创建模板Makefile文件
  3. 子工程 subdirs,为建立子目录下的目标文件创建模板Makefile文件,子目录通过变量subdirs指定(子目录下的工程文件也需要指出使用何种模板)
  4. VC应用程序vcapp,为Visual Studio 生成一个应用程序工程,仅仅用于Windos操作系统
  5. VC库vclib,为Visual Studio生成一个应用程序库工程,仅仅用语Windows操作系统

SOURCES - 应用程序中的所有源文件的列表。

HEADERS - 应用程序中的所有头文件的列表。

Cmake

CMake(Cross platform Make)是一个开源的跨平台自动化构建工具, 可以跨平台地生成各式各样的 makefile 或者 project 文件, 支持利用各种编译工具生成可执行程序或链接库。

CMake 自己不编译程序, 它相当于用自己的构建脚本 CMakeLists.txt,叫各种编译工具集去生成可执行程序或链接库。

一般用于编译程序的 makefile 文件比较复杂,自己去编写比较麻烦, 而利用 CMake ,就可以编写相对简单的 CMakeLists.txt ,由 CMake 根据 CMakeLists.txt 自动生成 makefile,然后就可以用 make 生成可执行程序或链接库。


创建新文件及添加现有文件的区别

QT编译时qmake和cmake的区别_子目录

qmake:

qmake编译下只要在项目文件夹中右击【添加新文件】,选择要添加的文件格式等,确定即可添加到项目;

添加现有文件,只需提前将需添加的文件粘贴到项目目录下,点击【添加现有文件】,从弹出的窗口中导入需添加的文件即可。

Cmake:

在CMakeLists.txt中的xx_SOURCES中,复制添加的新文件(或需导入的文件)xx.cpp/xx.h粘贴到如下语句中:

QT编译时qmake和cmake的区别_添加现有文件_02

再ctrl+S,文件目录列表里即会添加刚创建的新文件或添加需要集成进去的文件。

标签:文件,CMakeLists,cmake,QT,应用程序,生成,添加,qmake,模板
From: https://blog.51cto.com/u_16246024/7371254

相关文章

  • 【ToolChains】CLion(VS2019) + CMake + Vcpkg 的使用
    参考博客:https://blog.51cto.com/u_15075510/4201238http://t.csdn.cn/pADDUhttps://zhuanlan.zhihu.com/p/454233496https://blog.csdn.net/weixin_43803955/article/details/123544106Vcpkg概述Vcpkg是微软社区开发的一个跨平台的C++包管理工具。它旨在解决C++......
  • Windows MSVC 编译 libcurl 库,并导入到 QT 中
    前提QT已经配置好,编译器使用MSVC2017编译libcurl库1、下载curl官网下载,windows选择.zip后缀的文件2、nmake编译(VisualStudio中的附带命令)(1)解压并进入文件夹,双击运行buildconf.bat文件(2)开始菜单找到VisualStudio2017->VisualStudioTools->VC文件夹,选择x86......
  • Qt调用 mysql数据库 QSqlQuery::exec()堵塞
    RT,因为某个字段名称写错了,修改字段语句,语句大致如下altertablet_user_settingchangefield1field2varchar(32)default'11'comment'22'每当执行到query.exec()时,直接堵塞不动,刚好我这里使用workbench查看数据库,在workbench调用同样语句,程序就不堵塞了,每次都是这样。最......
  • 记录一个 qt+cmake 项目不生成 ui_xxx.h 文件的问题
    最近做一个Qt的项目的代码迁移到新平台,遇到一个问题。这个项目使用的CMake构建脚本,项目中的某个ui文件怎么都不能生成对应的ui_xxx.h文件,其他的文件都没有问题,使用qmake构建也没有问题。经过排查,问题原因如下:#include"ui_xxx.h"上面#include和后面的头文件之间没有空格......
  • QT/MFC课程设计参考选题[2023-09-04]
    QT/MFC课程设计参考选题[2023-09-04]课程设计参考选题课程设计作为课程所学内容的实践,要求采用面向对象系统分析与设计方法,首先对问题进行需求分析,识别类与对象,设计合理的类结构与程序结构实现程序功能(恰当应用教材所介绍的各种数据结构和算法),用C++语言编写程序;然后设计各种可能......
  • QT枚举类型的使用
    QT枚举类型的使用测试将这个枚举放在头文件外面,Q_ENUM也不可以引用,这个限制有点奇葩,引用另一个头文件定义的枚举类型也不行.h头文件enumTetrixShape{NoShape,ZShape,SShape,LineShape,TShape,SquareShape,LShape,MirroredLShape};Q_ENUM(......
  • centos下手动编译Qt应用程序
    centos7下手动编译Qt5的程序需要Qt5的源代码编译出Qt5在linux下的可执行环境,怎么编译这个以后再说我这里编译的版本是5.9.9然后,将这个环境拷贝到centos某个目录下,我放到主目录下设置环境变量编写一个文本文件叫qt-5.9.9-env,内容是exportPATH=/home/fan/qt-5.9.9/bin:$PATHe......
  • 理解Qt中的setViewport和setWindow
    概念相关Qt的2D变换中有逻辑坐标(窗口)和物理坐标(视口)划重点:窗口(逻辑坐标)与视口(物理坐标)的关系:窗口的四个角会映射到视口的四个角,它们四个角之间一一对应,两者的比例是1:1。它们默认的状态下,逻辑坐标和物理坐标都是一一对应的,起始点都是(0,0),长度高度也一致即两者重合,对应......
  • 小谈Qt的坐标系系统 - 3个坐标系,2个变换
    小谈Qt的坐标系系统Qt中有三个坐标系设备坐标系窗口坐标系逻辑坐标系设备坐标系:即Device坐标系。也是物理坐标系。即真实的的物理坐标系。逻辑坐标系:即用户坐标系。也就是说日常大家使用Qt的时候的坐标系。窗口坐标系:这个坐标系是QPainter设置setWindow以后的一个坐......
  • QT坐标系转换(将QPainter左上角为原点的坐标系转换为正常坐标系)
    没有复杂的变换,简单转化窗口坐标系,即可按我们正常熟知的坐标系进行绘图QPainter坐标系以左上角为原点,如下图 在这样的坐标系下绘图,位置这是倒过来的QPainterm_pPainter(this);   m_pPainter.setBrush(Qt::yellow);   m_pPainter.drawRect(0,0,50,50);   m......