pro文件转换为CMakeLists.txt文件,QT官方工具使用教程

某些情况需要使用cmake,如果手动将QT的pro文件转换成CMakeLists.txt,简短一点的pro还好,如果是比较复杂的pro,手动转换的时候需要长时间的debug,本人深有感受。

工具介绍:

  • qmake2cmake工具创建一个CMakeLists.txt文件,覆盖转换后的.pro文件的大多数常见属性。
  • 生成的CMake项目可以作为基线使用,但可能需要手动调整。
  • 无法转换的QMake构造将以注释的形式保留在CMake项目中。

前置工具安装:
        python3.7 及以上(安装步骤这里就先不讲了,大家自行检索)

进入官方页面拉取工具代码:

地址:qt/qmake2cmake · Gerrit Code Review

官方已经把指令都写好了,直接复制指令:
 

git clone "https://codereview.qt-project.org/qt/qmake2cmake" && (cd "qmake2cmake" && mkdir -p `git rev-parse --git-dir`/hooks/ && curl -Lo `git rev-parse --git-dir`/hooks/commit-msg https://codereview.qt-project.org/tools/hooks/commit-msg && chmod +x `git rev-parse --git-dir`/hooks/commit-msg)

需要先安装 git ,git安装这里就先不解释了

Linux环境的话,粘贴到终端里面直接执行

Windows环境的话,打开Windows PowerShell , 将指令粘贴进去执行

安装工具:

接下来的步骤是创建和激活虚拟环境,并安装所需的依赖包:

  • 创建虚拟环境:python3 -m venv env --prompt qmake2cmake,这行命令会创建一个名为env的虚拟环境,并且环境的提示符会显示为qmake2cmake
  • 激活虚拟环境:在Unix系统中使用source env/bin/activate,在Windows系统中使用env\Scripts\activate.bat
  • 安装依赖:pip install -r requirements.txt,这行命令会根据项目根目录下的requirements.txt文件安装所有必需的Python包。
  • 最后,如果pip install命令不起作用,给出了一个替代命令:python3.7 -m pip install -r requirements.txt

最后执行 pip install qmake2cmake 

工具安装好在这:

我用的是windows系统测试 如果是Linux的话, Python 环境的 bin/ 目录下会有两个脚本:qmake2cmake 和 qmake2cmake_al

工具使用方法:

调用将单个 QMake 项目文件转换为 CMake
这条命令将 ~/projects/myapp/myapp.pro 文件转换为 CMake 格式,
并指定项目应使用的最低 Qt 版本为 6.3。必须指定一个最低 Qt 版本,
可以通过 --min-qt-version 选项或环境变量

默认情况下,生成的 CMakeLists.txt 文件会放在 .pro 文件的同一目录下。

qmake2cmake ~/projects/myapp/myapp.pro --min-qt-version 6.3

如果需要在不同的位置生成 CMakeLists.txt,可以使用 -o 选项。

qmake2cmake ~/projects/myapp/myapp.pro --min-qt-version 6.3 -o ~/projects/myapp-converted/CMakeLists.txt

这条命令将 myapp.pro 文件转换为 CMake 格式,
并将生成的 CMakeLists.txt 文件放在 ~/projects/myapp-converted/ 目录下

要转换整个项目树,需要将项目目录传递给 qmake2cmake_all

qmake2cmake_all ~/projects/myapp --min-qt-version 6.3

这条命令将 ~/projects/myapp 目录下的整个项目树转换为 CMake 格式。

windows使用的话,在 Windows PowerShell 运行指令
使用方法跟上面类似,只是在指令前面加一个  ./

./qmake2cmake ~/projects/myapp/myapp.pro --min-qt-version 6.3

./qmake2cmake ~/projects/myapp/myapp.pro --min-qt-version 6.3

./qmake2cmake_all ~/projects/myapp --min-qt-version 6.3

另外,最低qt版本不能低于6.0

这是我在windows环境下编译好的,自测可以使用,这里挂出来0积分下载,不清楚移植后是否可以用,大家有需要的好自己测一下哈,评论区可以留言讨论。

https://download.csdn.net/download/qq_39085747/90158841

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/890501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CDN信息收集(小迪网络安全笔记~

免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,…

深度学习实战车辆目标跟踪【bytetrack/deepsort】

本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化,该数据集包含丰富的车辆目标图像样本…

windows使用zip包安装MySQL

windows通过zip包安装MySQL windows通过zip包安装MySQL下载MySQL的zip安装包创建安装目录和数据目录解压zip安装包创建配置目录 etc 和 配置文件 my.ini安装MySQL进入解压后的bin目录执行命令初始化执行命令安装 验证安装查看服务已安装 启动MySQL查看服务运行情况修改密码创建…

Dots 常用操作

游戏中有多个蚂蚁群落,每个蚂蚁属于一个群落,如何设计数据结构? 方法1:为蚂蚁组件添加一个属性 ID,会造成逻辑中大量分支语句,如果分支语句逻辑不平衡可能带来 Job 调度问题,每个蚂蚁会有一份蚂…

Django 后端数据传给前端

Step 1 创建一个数据库 Step 2 在Django中点击数据库连接 Step 3 连接成功 Step 4 settings中找DATABASES Step 5 将数据库挂上面 将数据库引擎和数据库名改成自己的 Step 6 在_init_.py中加上数据库的支持语句 import pymysql pymysql.install_as_MySQLdb()Step7 简单创建两列…

BaseCTF_web_week3

复读机 输入的东西会在下方显示出来,wp说是简单的SSTI,这里来学习一下SSTI SSTI模板注入 根据My4n师傅的《超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客》写的 用户的输入返回时会经过一个模板渲染,SSTI漏洞就是用户插入了可以破坏模板…

SQL server学习09-数据库编程(上)

目录 一,了解T-SQL语言 1,常量(标量值) 2,变量 1)局部变量 2)全局变量 二,内置函数 1,字符串函数 2,数学函数 3,日期时间函数 4&#x…

CentOS7系统下部署tomcat,浏览器访问localhost:8080/

我这里以本地的VMware虚拟机创建的CentOS为例,来讲解部署tomcat的步骤,阿里云的服务器ECS部署只需设置下安全组规则即可,Centos内一样。 首先启动VM,输入密码进入centos,用xshell连接 2. 在家目录输入 cd /usr/local 进入local目录, 输入 mkdir java ,创建java目录…

解析 Ingress-Nginx 故障:排查思路与方法

文章目录 一、什么是Ingress-Nginx二、故障排除1.1Ingress-Controller日志和事件检查 Ingress 资源事件检查 Nginx 配置检查使用的服务是否存在调试日志 1.2对 Kubernetes API 服务器的认证服务认证服务账户Kube-Config 1.3使用GDB和Nginx1.4在 Nginx 4.2.5 或其他版本&#xf…

蓝桥杯物联网开发板硬件组成

第一节 开发板简介 物联网设计与开发竞赛实训平台由蓝桥杯大赛技术支持单位北京四梯科技有限公司设计和生产,该产品可用于参加蓝桥杯物联网设计与开发赛道的竞赛实训或院校相关课程的 实践教学环节。 开发板基于STM32WLE5无线微控制器设计,芯片提供了25…

【实操之 图像处理与百度api-python版本】

1 cgg带你建个工程 如图 不然你的pip baidu-aip 用不了 先对图片进行一点处理 $ 灰度处理 $ 滤波处理 参考 import cv2 import os def preprocess_images(input_folder, output_folder):# 确保输出文件夹存在if not os.path.exists(output_folder):os.makedirs(output_fol…

【LuaFramework】LuaFramework_UGUI_V2框架学习

GitHub - jarjin/LuaFramework_UGUI_V2: 基于tolua的热更新框架V2 旧版本是Unity 5.0,这个是新版本支持更高版本的 导入工程后先清除wrap 然后重新生成wrap,你会发现有个报空null,框架的问题总结下所有的框架wrap相关报错问题和修复方法&…

重温设计模式--状态模式

文章目录 状态模式(State Pattern)概述状态模式UML图作用:状态模式的结构环境(Context)类:抽象状态(State)类:具体状态(Concrete State)类&#x…

16×16LED点阵字符滚动显示-基于译码器与移位寄存器(设计报告+仿真+单片机源程序)

资料下载地址:​1616LED点阵字符滚动显示-基于译码器与移位寄存器(设计报告仿真单片机源程序)​ 1、功能介绍 设计1616点阵LED显示器的驱动电路,并编写程序实现在1616点阵LED显示器上的字符滚动显示。1616点阵LED显示器可由4块88点阵LED显示器构成。可采…

Scala图书管理系统

项目创建并实现基础UI package org.appimport scala.io.StdInobject Main {def main(args: Array[String]): Unit {var running truewhile (running) {println("欢迎来到我的图书管理系统,请选择")println("1.查看所有图书")println("2…

WPF+MVVM案例实战与特效(四十五)- 打造优雅交互:ListBox 的高级定制与行为触发(侧边菜单交互面板)

文章目录 1、引言2、案例效果3、案例实现1、依赖安装2、文件创建3、代码实现1、依赖引用与上下文2、个性化视觉效果:自定义 ItemContainerStyle3、页面样式与布局完整代码4、ViewModel 逻辑实现5、子界面代码:3、实现效果4、源代码获取5、总结1、引言 在WPF应用程序开发中,…

WPF+MVVM案例实战与特效(四十八)-实现一个自定义饼状图控件

文章目录 1、案例效果2、案例实现1、PieControl.xaml 代码2、样式代码如下:1、案例效果 2、案例实现 1、PieControl.xaml 代码 代码如下(示例): namespace PieControl {public class PieControl: Control

玩转OCR | 探索腾讯云智能结构化识别新境界

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 玩转OCR 腾讯云智能结构化识别产品介绍服务应用产品特征行业案例总结 腾讯云智能结构化识别 腾讯云智能结构化OCR产品分为基础版与高级版&am…

「下载」智慧城市“一网统管”总体框架全解析:整体架构、运营体系规划、具体运营内容、典型场景、运营工具平台

智慧城市“一网统管”,通过先进的信息技术手段,实现城市管理的智能化、协同化、精准化和高效化。 本文将基于《智慧城市“一网统管”运营研究报告2024》的内容,从发展背景及趋势、“一网统管”运营总体框架、运营体系规划、“一网统管”运营内…

突破续航瓶颈:数字样机技术引领新能源汽车复合制动新方向

随着我国经济快速发展和人民生活水平不断提升,汽车保有量截至2023年9月底就已达到了3.3亿,同比增长6.32%。庞大的汽车保有量对我国的环境和能源都产生了巨大的压力,具备节能环保优势的新能源汽车对于有效解决环境恶化和能源危机问题具有重要意…