最近要Linux下做相关软件开发了,还要当自己为新手,本着求知求学的心态,再简单的事情,也要好像学习,一面一些不该犯的错误犯了,另外也是趟一些雷,不害怕出错误,哪怕碰到最简单的错误也要好好总结下。
实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:
环境问题还是要注意下的,不同环境下可能还真的可能不一样。
QT软件版本:qt 5.14.2
硬件设备:CH34的TTL串口转usb模块(使用H7开发板代替)
在如下这篇文章里,我们安装了软件,并且简单建立一个工程。首次实现了在Linux下运行第一个dome。
【Linux20.04-qt5.12.4软件安装与初步使用-qt在Linux使用-记录-笔记】
如何还没有安装的话,可以先看看。
首先不得不说,qt在跨平台这放面做得挺好的。
这点从我将一个简单的串口样例直接拉倒Linux下运行,就可以看出。但是我们还是要注意下,有些并不能直接运行的。
以下在网上搜索的,整理如下。
在很多情况下,Windows下的Qt代码可以直接在Linux环境中编译和运行,但这也取决于几个因素,这些因素,在实践中运行过程中,会对最后运行结构有影响。
Qt框架本身是设计成跨平台的。如果你的代码只使用了Qt的跨平台特性,并没有调用特定于Windows的API,那么这些代码通常可以在Linux上编译和运行而不需要修改。
自己也是刚刚使用Linux下进行开发,依赖外部的工具,比如之前在win下,调用工具exe给STM32单片机烧写的例子,因为Linux下exe无法运行,所以相应工程就无法直接跨平台。
【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】
如果你的应用程序依赖于特定平台的库或者第三方库,你需要确保这些库也在Linux上可用,并且可能需要对应用程序进行相应的修改。
像之前can相关,自己暂时不知道Linux是否有相关库,不过之前Windows下那个可能不能拿过来直接用,像这种调用外部库的,可能性要查下,能不能直接使用。
Windows和Linux在文件路径(例如,路径分隔符)和换行符上有所不同。Windows使用反斜杠(\)作为路径分隔符和CRLF作为换行符,而Linux使用斜杠(/)作为路径分隔符和LF作为换行符。虽然Qt封装了很多这样的细节,但如果你的代码直接处理了这些,可能需要进行调整。
不同的编译器可能对C++标准的支持程度不同,或者对代码的解释有细微差别。如果你的代码依赖于特定编译器的特性,或者使用了非标准的C++特性,可能需要进行一些调整。
你可能需要根据Linux环境调整构建脚本或项目文件(如.pro文件),尤其是当涉及到不同的编译器或者特定于平台的构建指令时。
总的来说,如果你的Qt应用程序是以跨平台为目标开发的,并且遵循了良好的编程实践,那么将其从Windows迁移到Linux通常是直接可行的,或者需要的修改非常有限。然而,如果存在平台特定的代码或依赖,那么这个过程可能会更复杂。
这次我们直接使用Windows下的qt代码,选择了串口那个简单样例,如下。
【QT 5 调试软件+串口相关初试串口+基础样例】
代码连接:https://download.csdn.net/download/qq_22146161/86722251
626 sudo apt-get install unrar
628 sudo unrar x test_dome_serial1.rar
(1)下载工具
自己实际调试时,发现没有安装这个解压工具,所以先安装下,如上边626行命令。
(2)解压
一般RS232应该是免驱动的,直接插上就能用。
这里我发现,USB转TTL转换工具不好用了,记得win下,好像要装驱动的,所以无法使用,后续再看看能不能使用吧。
一步一个脚印