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.rhkb.cn/news/494112.html

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

相关文章

Python读取Excel批量写入到PPT生成词卡

一、问题的提出 有网友想把Excel表中的三列数据,分别是:单词、音标和释义分别写入到PPT当中,每一张PPT写一个单词的内容。这种批量操作是python的强项,尤其是在办公领域,它能较好地解放双手,读取Excel表后…

【快速上手】linux环境下Neo4j的安装与使用

一、neo4j简介 neo4j是一个非关系型图形数据库,非常适合处理具有复杂关系的数据集 存储方式:图形化存储 特点:将结构化数据存储在图上而不是表(比如:MySQL数据库存储在表中)中 neo4j也可以看作是一个高…

【看海的算法日记✨优选篇✨】第二回:流动之窗,探索算法的优雅之道

🌈 个人主页:谁在夜里看海. 🔥 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 一、算法思想 双指针 滑动窗口 二、具体运用 1.⻓度最⼩的⼦数组 算法思路 算法流程 代码 2.最⼤…

Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略

Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略 目录 Excalidraw 简介 1、Excalidraw 的主要特点: Excalidraw 安装和使用方法 1、Excalidraw的安装 T1、使用 npm 安装: T2、使用 …

设计模式之【观察者模式】

观察者模式: 应用于发布-订阅消息模型中,订阅者订阅一个主题后,当有新消息到达时,所有订阅者都会收到通知。 主要关注的是对象之间的通信。是一种对象之间的一对多关系,多个对象依赖于一个对象,当被依赖的…

页面无滚动条,里面div各自有滚动条

一、双滚动条左右布局 实现效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Doc…

(Z Shell)zsh: no matches found: ? 使用单引号包裹

文章目录 dgqdgqdeMac-mini ProductAuthentication % git commit -m "open-type"{{isCodeValid ? getPhoneNumber : none}}"" zsh: no matches found: ?git commit -m open-type"{{isCodeValid ? getPhoneNumber : none}}"你遇到的 zsh: no m…

鸿蒙元服务从0到上架【第二篇】

第一招&#xff1a;在AppGallery后台下载对应的证书等文件 AppGallery后台 新增发布证书&#xff0c;具体操作可查看申请发布证书 申请发布Profile证书 第二招&#xff1a;在IDE中填写 第三招&#xff1a;打包【⚠️发布上架的只能是Build App】 终端展示这一片绿&#xf…

网络安全概论——身份认证

一、身份证明 身份证明可分为以下两大类 身份验证——“你是否是你所声称的你&#xff1f;”身份识别——“我是否知道你是谁&#xff1f;” 身份证明系统设计的三要素&#xff1a; 安全设备的系统强度用户的可接受性系统的成本 实现身份证明的基本途径 所知&#xff1a;个…

【学习记录】浏览器指纹相关学习记录(指纹介绍、获取指纹、修改指纹、随机指纹保护隐私等)

用途 不需要用户登录&#xff0c;可以识别是同一个用户&#xff0c;用于反爬虫广告推送等一类的场景 指纹在线查询地址 http://www.fingerprintbrowser.com/ CreepJS 浏览器指纹在线检测网站:代理IP防关联伪装度查询工具 IP检测大师 【自动化】Python SeleniumUtil 工具 开…

redis数据转移

可能有时候因为硬件的原因我们我们需要更换服务器&#xff0c;如果更换服务器的话&#xff0c;那我们redis的数据该怎样转移呢&#xff0c;按照一下步骤即可完成redis数据的转移 1.进入redis客户端 2.使用 bgsave命令进行数据的备份&#xff0c;此命令完成后会在你的redis安装目…

【MySQL】数据库 Navicat 可视化工具与 MySQL 命令行基本操作

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

腾讯云智能结构化OCR:以多模态大模型技术为核心,推动跨行业高效精准的文档处理与数据提取新时代

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大三学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

登山第十六梯:深度恢复——解决机器人近视问题

文章目录 一 摘要 二 资源 三 内容 一 摘要 深度感知是基于 3D 视觉的机器人技术的一个重要问题。然而&#xff0c;现实世界的主动立体或 ToF 深度相机经常会产生嘈杂且深度不完整&#xff0c;从而成为机器人性能的瓶颈。在这项工作中&#xff0c;提出了 一个基于学习的立体…

Leetcode中最常用的Java API——util包

前言&#xff1a;在刷力扣的时候是核心代码模式&#xff0c;笔试的时候很可能是ACM模式&#xff0c;需要自己完成导包、定义和自行设计输出&#xff0c;所以一些常用的类和方法需要先导入相应的API包&#xff0c;java.util就是最常用到的包&#xff0c;因为它包含集合这个大框架…

JVM对象分配内存如何保证线程安全?

大家好&#xff0c;我是锋哥。今天分享关于【JVM对象分配内存如何保证线程安全&#xff1f;】面试题。希望对大家有帮助&#xff1b; JVM对象分配内存如何保证线程安全&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在JVM中&#xff0c;对象的内存分配…

前端使用 Konva 实现可视化设计器(20)- 性能优化、UI 美化

这一章主要分享一下使用 Konva 遇到的性能优化问题&#xff0c;并且介绍一下 UI 美化的思路。 至少有 2 位小伙伴积极反馈&#xff0c;发现本示例有明显的性能问题&#xff0c;一是内存溢出问题&#xff0c;二是卡顿的问题&#xff0c;在这里感谢大家的提醒。 请大家动动小手&a…

AIGC-------AI生成内容如何赋能AR和VR体验?

AI生成内容如何赋能AR和VR体验 引言 增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;技术近年来蓬勃发展&#xff0c;为用户提供了沉浸式的体验。这些技术已经广泛应用于游戏、教育、医疗、建筑等领域。然而&#xff0c;AR和VR体验的质量与内容的丰富…

VLM--CLIP作分类任务的损失函数

info_nce_loss 这个是clip作对比学习的损失函数 各个博客上都有详细介绍了&#xff0c;我这里就不赘述 def info_nce_loss(image_features, text_features,logit_scale,labels, temperature0.07):batch_size image_features.shape[0]image_features image_features / image…

【模型压缩】原理及实例

在移动智能终端品类越发多样的时代&#xff0c;为了让模型可以顺利部署在算力和存储空间都受限的移动终端&#xff0c;对模型进行压缩尤为重要。模型压缩&#xff08;model compression&#xff09;可以降低神经网络参数量&#xff0c;减少延迟时间&#xff0c;从而实现提高神经…