Qt 跨平台开发的一丢丢总结

news2024/9/21 7:37:47
头图

Qt 跨平台开发

文章目录

  • Qt 跨平台开发
    • 摘要
    • 第一 ` \ & /`
    • 第二 神奇`{`不能换行显示
    • 第三 预处理宏

关键字: QtwinlinuxlibMSVC

摘要

最近一直在琢磨Qt跨平台开发的问题,缘由有以下几个,

首先第一个,我们目前开发的软件是应该通用性的软件,所以未来应该大概率是会多平台支持。

第二,软件的特性是属于监控类软件,那么长期稳定运行也是一个重要的指标,虽然现在Windows的稳定性已经很好了,但是Linux可以更胜一筹。

第三,我司目前的主力技术更加精通Linux下的开发,当我们遇到问题是,他们在Windows下的经验不是很多,比如对于崩溃事件的定位,Windows下尝试了好几个工具都不理想,所以他们更希望有Linux下的软件

第四,多点一点技能树也挺好。

第一 \ & /

看到这个是不是很头疼,这是我遇到的第一个问题,直接导致我放弃了第一次移植,虽然之前也是Linux 有过开发经验,但是在基本都是单平台的,要么Windows,要么Linux,那么如果在Windows用的是MinGW套件也好说,主要是们有好几个大牛直接嫌弃MinGW的性能,加上开始项目不是我自己主导,所以我们的编译环境是MSVC套件。这就导致我在移植的时候,更加困难,不过好在之前做过国际化了,把项目中的中文全部替换了,不然更是灾难。说正事。

起因就是我发现我代码使用git在Linux平台拉取后,不分文件丢失,但是重新添加又会好使,这就让我很烦,数百个文件,让小弟处理不放心,主程处理浪费资源。自己处理又不想搞。所以第一次就搁置了。

知道今天,我主导的第二代重构项目要决定必须两个平台同时开进,不得不处理时才发现这个可恶的\ & / Windows下这个好像并不是很敏感,可以混着用,但是到Linux 就不可以了,最终吧pro 和pri中的\替换为/就好是了

第二 神奇{不能换行显示

还是接着聊跨平台,既然都到跨平台了,那在不同平台下,包含的库也是不同的,当我使用一下代码包我的库文件的是时候,还是报错了。具体表现是什么,就是Windows竟然链接到了unix中的库文件,直接包找不到xxxx.lib,能在linux库中只掉.lib库就见鬼了。

win32
{

}
unix:!macx
{
    
}

这个问题我问了GPT,GPT都得懵逼,所以我就直接百度,批量打开,偶然间看到一个大佬说{不能单起一行,和关键字同一行解决,FFFFFFF,学艺不精!

第三 预处理宏

这个没啥好说的,使用宏包一下就可以,只是我看Qt里面有好几个,也知道具体啥区别,目前Windows下使用了Q_OS_WIN


博客签名2021

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

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

相关文章

【剪映专业版】03立体自动翻页

【剪映专业版】立体自动翻页制作 1.导入素材,图片或视频均可 2.将素材2拖动至素材1的上方,点击蒙版,选择线性蒙版,并旋转为90度。 3.复制素材1,并拖动到素材2上方,分割并删除后半部分,点击蒙版…

Java进阶-Stream流

概述 在Java8中,得益于lambda所带来的函数式编程,引入了一个全新的Stream流的概念目的:用于简化集合和数组操作的api 案例 需求:创建一个集合存储多个字符串元素,将集合中所有以“z”开头的元素存储到新的集合中&am…

邀请全球创作者参与 The Sandbox 创作者训练营

作为首屈一指的元宇宙平台之一,The Sandbox 的使命是成为全球创作者的中心。随着我们对 Game Maker 的不断改进、旨在激发创作者灵感的定期 Game Jams、革命性的 "创作者挑战 "以及众多其他活动的开展,我们见证了大量个人加入我们充满活力的创…

C++ 虚表起源

本文会让看不见 摸不着的虚表(Vtable),虚指针(Vptr)彻底现行 本文涉及思想: C 面向对象 封装 继承 多态 中的 多态 概念解释: 虚表指针: 这是指向虚表(vtable)的指针,虚表中包含了该类的所有虚函数对应的地址。 虚表&#x…

每日一题 — 二分查找

704. 二分查找 - 力扣(LeetCode) 朴素二分查找模板: while(.......){//防止溢出int mid left(right - left)/2;if(........){right mid-1;}else if(......){left mid1;}else{return mid;}} 代码: public int search(int[] num…

十六、Qgis工具如何将shp转换geoJson类型文件

在使用GIS地图的时候线路图是非常重要的一个部分,根据以前的下载方法下载好了Qgis工具,那么如何将在openstreetmap下载下来的.shp文件转换为geoJson呢,下面就来说说。 准备工作 一、首先肯定是下载好了中国地图的全部的.shp包。里面包含全国的地图,包含shp,cpg,dbf类型的道…

软考 系统架构设计师系列知识点之大数据设计理论与实践(18)

接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(17) 所属章节: 第19章. 大数据架构设计理论与实践 第5节 Lambda架构与Kappa架构的对比和设计选择 19.5.2 Lambda架构与Kappa架构的设计选择 根据Lambda与Kapp…

ArrayList与顺序表(2)

前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&#x1…

FFmpeg源码编译

msys2 依赖环境安装 依赖环境安装编译X264编译 fdk-aac文件处理编译x265编译FFmpeg 依赖环境安装 编译X264 用于h264 AVC视频格式编码 CCcl ./configure --enable-shared #指定使用cl,编译成动态链接库 make -j32 #使用32线程进行编码 make install命令一 关于第一条命令执…

专注 APT 攻击与防御—工具介绍—Sqlmap

sqlmap参数详解: 由于Sqlmap 是常用工具之一,所以本篇的篇幅较长,详解一次所有参数。 1、Options(选项) Usage: python sqlmap.py [options]Options(选项):-h, --help Show basic help messa…

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

系列文章目录 前言 本综合指南提供了在英伟达 Jetson设备上部署Ultralytics YOLOv8 的详细攻略。此外,它还展示了性能基准,以证明YOLOv8 在这些小巧而功能强大的设备上的性能。 备注 本指南使用Seeed Studio reComputer J4012进行测试,它基于…

金融风控信用评分卡建模(Kaggle give me credit数据集)

1 数据预处理数据 数据来源于Kaggle的Give Me Some Credit,包括25万条个人财务情况的样本数据 1.1 导包读数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestRegressor import seaborn as …

备考2024年上海初中生古诗文大会:单选题真题示例和独家解析

上海市中小学生的初中生古诗文大会——即上海中学生古诗文大会(初中组)和小学生古诗文大会(比赛)相比,除了题型更丰富之外,最主要的是考察的内容深度和广度不同。初中的题目中对于文言文的考察大幅增加&…

树莓派驱动RGB灯-rpi-ws281x库安装

1 树莓派的操作系统安装 1.1 操作系统选择 这个选择64位的操作的系统来驱动,一定不要选择32位的操作系统。笔者在这个地方浪费不少时间,具体原因不是很清楚。如果32位的操作系统,后面在rpi-ws281x的库时候会有报错。 1.2 操作系统链接如下…

嵌入式Linux八股(二)——Linux

二、Linux 01.Linux系统编程 01.Linux系统文件类型: 7/8 种 普通文件:- 目录文件:d 字符设备文件:c 块设备文件:b 软连接:l 管道文件:p 套接字:s 未知文件 文件权限说明 …

虚拟机中安装的CentOS7的桌面右上角没有网络图标解决方案

问题描述 今天在打开CentOS7后,发现右上角的网络图标不见了,然后命令行访问百度也不通。然后上网查了一些解决方法。 原因分析及解决方案: 上网查了许多解决方法,其中一种成功解决了我的问题;我的是配置文件的问题。…

探索 去中心化的Web3.0

随着区块链技术的日益成熟和普及,Web3(Web 3.0)已经成为一个无法忽视的趋势。Web3不仅仅是一个技术概念,更是一个去中心化、透明、用户数据拥有权归还给用户的互联网新时代。在这篇文章中,我们将深入探讨Web3技术的核心…

漏洞发生时,企业应该怎么做?

2021年,相关法律法规的完善极大促进了中国网络安全行业的发展,基于企业稳定运营、安全运营的原则,越来越多的领域投入到企业安全合规的建设中来。但现状是,随着安全建设的不断深入,各项出台的法规、政策并不一定能充分…

nodejs切换

1.卸载nodejs 2.下载nvm工具 3.检查nvm安装情况 nvm -v3.nvm 安装命令 nvm install 10.16.34.查询nodejs版本 nvm list5.切换nodejs版本 nvm use 10.16.3

【Node.js】03 —— HTTP 模块探索

🌟Node.js之HTTP模块探索✨ 🌟引言 在网络编程中,HTTP协议无处不在。在Node.js的世界里,我们可以通过内置的http模块来轻松创建HTTP服务器和客户端,实现数据的接收和发送。今天就让我们一起打开这扇门,探索…