Qt 跨平台开发

头图

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.hqwc.cn/news/640917.html

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

相关文章

Hive 表添加列(新增字段)

前言 记录总结一下 Hive 表如何添加新的字段以及遇到的问题。 最初是因为要验证 Hudi Schema Evolution 中的增加字段问题 SQL alter table test_hive add columns (col_new string);# 级联应用到分区表的所有分区 # 对于 Parquet、Text 分区表需要加cascade , OR…

STM32F1串口

文章目录 1 数据通信的基础概念1.11.21.31.41.5 2 串口(RS-232)2.12.22.32.42.5 3 STM32的USART3.13.23.33.53.9 USART寄存器介绍 4 HAL库外设初始化MSP回调机制5 HAL库中断回调机制6 USART/UART异步通信配置步骤 (包括HAL库相关函数)6.16.26…

unity读写本地excel_2024.4.22

using System.Collections; using System.Collections.Generic; using UnityEngine; using OfficeOpenXml; using System.IO; using Excel; using System.Data; using System; /// <summary> /// https://blog.csdn.net/Xz616/article/details/128893023 /// Unity3D操作…

管理集群工具之LVS

管理集群工具之LVS 集群概念 将很多机器组织在一起&#xff0c;作为一个整体对外提供服务集群在扩展性、性能方面都可以做到很灵活集群分类 负载均衡集群&#xff1a;Load Balance高可用集群&#xff1a;High Availability高性能计算&#xff1a;High Performance Computing …

JS 分片任务的高阶函数封装

前言 在我们的实际业务开发场景中&#xff0c;有时候我们会遇到渲染大量元素的场景&#xff0c;往往这些操作会使页面卡顿&#xff0c;给用户带来非常不好的体验&#xff0c;这时候我们就需要给任务分片执行。 场景复现 我们看一段代码&#xff1a; <!DOCTYPE html> &l…

微软如何打造数字零售力航母系列科普02 --- 微软低代码应用平台加速企业创新 - 解放企业数字零售力

微软低代码应用平台推动企业创新- 解放企业数字零售力 微软在2023年GARTNER发布的魔力象限图中处于头部领先&#xff08;leader&#xff09;地位。 其LCAP产品是Microsoft Power Apps&#xff0c;扩展了AI Builder、Dataverse、Power Automate和Power Pages&#xff0c;这些都包…

[BT]BUUCTF刷题第20天(4.22)

第20天 Web [GWCTF 2019]我有一个数据库 打开网站发现乱码信息&#xff08;查看其他题解发现显示的是&#xff1a;我有一个数据库&#xff0c;但里面什么也没有~ 不信你找&#xff09; 但也不是明显信息&#xff0c;通过dirsearch扫描得到robots.txt&#xff0c;然后在里面得…

keil把c语言函数转成汇编

汇编可以让开发人员从根源上理解程序的运行逻辑&#xff0c;本文介绍如何在keil环境下如何把一个c文件中的某一个函数&#xff0c;转换为汇编函数&#xff0c;并编译运行。 右击某个c文件&#xff0c;选择Option for File。。。 图1 然后把下图中的Generate Assembler SRC Fi…

自动驾驶控制算法

本文内容来源是B站——忠厚老实的老王&#xff0c;侵删。 三个坐标系和一些有关的物理量 使用 frenet坐标系可以实现将车辆纵向控制和横向控制解耦&#xff0c;将其分开控制。使用右手系来进行学习。 一些有关物理量的基本概念&#xff1a; 运动学方程 建立微分方程 主要是弄…

【bug】使用mmsegmentaion遇到的问题

利用mmsegmentaion跑自定义数据集时的bug处理&#xff08;使用bisenetV2&#xff09; 1. ValueError: val_dataloader, val_cfg, and val_evaluator should be either all None or not None, but got val_dataloader{batch_size: 1, num_workers: 4}, val_cfg{type: ValLoop}, …

2024免费MAC苹果电脑系统优化软件CleanMyMac X

CleanMyMac X确实是一款专为Mac用户设计的清理和优化工具。它提供了一系列功能&#xff0c;旨在帮助用户释放磁盘空间、提升Mac的性能&#xff0c;并保护用户的隐私。 CleanMyMac X能够智能地扫描和识别Mac上的各种垃圾文件&#xff0c;如系统缓存、日志文件、无用的语言包等&…

【React】Day6

项目搭建 基于CRA创建项目 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start调整项目目录结构 -src-apis 项目接口函数-assets 项目资源文件&…