【QT 5 调试软件+(Linux下验证>>>>串口相关初试串口)+Windows下qt代码在Linux下运行+参考win下历程+基础样例】

发布时间:2023年12月17日

1、前言

最近要Linux下做相关软件开发了,还要当自己为新手,本着求知求学的心态,再简单的事情,也要好像学习,一面一些不该犯的错误犯了,另外也是趟一些雷,不害怕出错误,哪怕碰到最简单的错误也要好好总结下。

2、实验环境

实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:
环境问题还是要注意下的,不同环境下可能还真的可能不一样。
在这里插入图片描述

QT软件版本:qt 5.14.2
硬件设备:CH34的TTL串口转usb模块(使用H7开发板代替)

3、先行了解

在如下这篇文章里,我们安装了软件,并且简单建立一个工程。首次实现了在Linux下运行第一个dome。
【Linux20.04-qt5.12.4软件安装与初步使用-qt在Linux使用-记录-笔记】

如何还没有安装的话,可以先看看。

4、自我总结-win下工程切到Linux下

首先不得不说,qt在跨平台这放面做得挺好的。
这点从我将一个简单的串口样例直接拉倒Linux下运行,就可以看出。但是我们还是要注意下,有些并不能直接运行的。

以下在网上搜索的,整理如下。

在很多情况下,Windows下的Qt代码可以直接在Linux环境中编译和运行,但这也取决于几个因素,这些因素,在实践中运行过程中,会对最后运行结构有影响。

1、平台无关的代码:

Qt框架本身是设计成跨平台的。如果你的代码只使用了Qt的跨平台特性,并没有调用特定于Windows的API,那么这些代码通常可以在Linux上编译和运行而不需要修改。

自己也是刚刚使用Linux下进行开发,依赖外部的工具,比如之前在win下,调用工具exe给STM32单片机烧写的例子,因为Linux下exe无法运行,所以相应工程就无法直接跨平台。
【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】

2、依赖的库:

如果你的应用程序依赖于特定平台的库或者第三方库,你需要确保这些库也在Linux上可用,并且可能需要对应用程序进行相应的修改。

像之前can相关,自己暂时不知道Linux是否有相关库,不过之前Windows下那个可能不能拿过来直接用,像这种调用外部库的,可能性要查下,能不能直接使用。

3、文件路径和换行符:

Windows和Linux在文件路径(例如,路径分隔符)和换行符上有所不同。Windows使用反斜杠(\)作为路径分隔符和CRLF作为换行符,而Linux使用斜杠(/)作为路径分隔符和LF作为换行符。虽然Qt封装了很多这样的细节,但如果你的代码直接处理了这些,可能需要进行调整。

4、编译器差异:

不同的编译器可能对C++标准的支持程度不同,或者对代码的解释有细微差别。如果你的代码依赖于特定编译器的特性,或者使用了非标准的C++特性,可能需要进行一些调整。

5、构建系统和环境设置:

你可能需要根据Linux环境调整构建脚本或项目文件(如.pro文件),尤其是当涉及到不同的编译器或者特定于平台的构建指令时。

总的来说,如果你的Qt应用程序是以跨平台为目标开发的,并且遵循了良好的编程实践,那么将其从Windows迁移到Linux通常是直接可行的,或者需要的修改非常有限。然而,如果存在平台特定的代码或依赖,那么这个过程可能会更复杂。

6、实验样例代码

这次我们直接使用Windows下的qt代码,选择了串口那个简单样例,如下。
【QT 5 调试软件+串口相关初试串口+基础样例】

代码连接:https://download.csdn.net/download/qq_22146161/86722251

7、实验过程

1、下载代码

在这里插入图片描述

2、下载解压工具
  626  sudo apt-get install unrar
  628  sudo unrar x test_dome_serial1.rar 

(1)下载工具
自己实际调试时,发现没有安装这个解压工具,所以先安装下,如上边626行命令。
(2)解压
在这里插入图片描述

3、使用qt开发工程

在这里插入图片描述

4、插入硬件,运行软件

一般RS232应该是免驱动的,直接插上就能用。
在这里插入图片描述

5、验证

在这里插入图片描述

8、细节部分

1、USB转TTL转换工具无法使用

这里我发现,USB转TTL转换工具不好用了,记得win下,好像要装驱动的,所以无法使用,后续再看看能不能使用吧。
在这里插入图片描述

9、总结

一步一个脚印

文章来源:https://blog.csdn.net/qq_22146161/article/details/134956942
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。