设置Linux开发板开机自启动QT程序的报错解决办法

设置Linux开发板开机自启动QT程序报错解决办法

设置开发板开机自启动QT

打开 /etc/init.d/rsC 文件,添加以下内容

c 复制代码
cd /
./my_start_run.sh

my_start_run.sh 是自己编写的自启动脚本,内容例如下:(也可以将这些直接写到 /etc/init.d/rsC 文件最后)

PS:下面这个脚本是最终的脚本,文章所展示的是我解决问题的调试过程,最后发现只需要加一句 source /etc/profile 即可

c 复制代码
# 自启动程序

source /etc/profile   # 刷新Qt的运行环境

######### 下面是自己的自启动程序 #########
./qt_projects/01.智能家居/insmod.sh  # 加载驱动

sleep 2 

echo "01_test_v2 run......"
    
./qt_projects/01.智能家居/01_test_v2 &  # 运行QT程序,&表示在后台运行
报错一:error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

但是开发板启动后报错了,报错信息如下:

  • 解决报错:设置链接库路径

    在移植QT的时候我们设置了一些链接库的路径,终端里运行

c 复制代码
echo $LD_LIBRARY_PATH

将这些路径复制下来,添加到 LD_LIBRARY_PATH 环境变量中,添加内容后的启动脚本如下所示

c 复制代码
#!/bin/sh

export LD_LIBRARY_PATH=/usr/lib/arm-qt/lib:/usr/lib/arm-qt/plugins/platforms:/usr/lib/arm-tslib/lib:$LD_LIBRARY_PATH  # 设置动态连接库路径

######### 下面是自己的自启动程序 #########
# 自启动程序
./qt_projects/01.智能家居/insmod.sh  # 加载驱动

sleep 2 
echo "01_test_v2 run......"
./qt_projects/01.智能家居/01_test_v2 &  # 运行QT程序,&表示在后台运行

然后重启开发板,出现新报错

报错二:qt.qpa.plugin: Could not find the Qt platform plugin "linuxfb" in ""

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Typora_images%2F设置开机启动QT程序报错解决办法.assets%2Fimage-![在这里插入图片描述](https://file.jishuzhan.net/article/1783478625853509634/f3bb2565a410abafa7cfbf5c19638f99.webp)

.png&pos_id=img-QXpoSxcP-1713850274268)

  • 解决报错:设置Qt 应用程序查找插件的路径

终端运行如下命令

c 复制代码
echo $QT_PLUGIN_PATH

将这些路径复制下来,添加到 QT_PLUGIN_PATH 环境变量中,添加内容后的启动脚本如下所示

c 复制代码
#!/bin/sh

export LD_LIBRARY_PATH=/usr/lib/arm-qt/lib:/usr/lib/arm-qt/plugins/platforms:/usr/lib/arm-tslib/lib:$LD_LIBRARY_PATH  # 设置动态连接库路径

export QT_PLUGIN_PATH=/usr/lib/arm-qt/plugins  # 指定 Qt 插件路径

######### 下面是自己的自启动程序 #########
# 自启动程序
./qt_projects/01.智能家居/insmod.sh     # 加载驱动

sleep 2 
echo "01_test_v2 run......"
./qt_projects/01.智能家居/01_test_v2 &  # 运行QT程序,&表示在后台运行

然后重启开发板,出现新报错

报错三:random: nonblocking pool is initialized

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-'

QFontDatabase: Cannot find font directory /home/me/qt-everywhere-src-5.12.9/arm-qt/lib/fonts.

Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.

  • 解决报错

终端运行如下命令,获取 XDG_RUNTIME_DIR 环境变量的值

c 复制代码
echo $XDG_RUNTIME_DIR

在系统中寻找 fonts 文件

c 复制代码
find / -name "fonts"

将这些路径复制下来,修改启动脚本如下所示

c 复制代码
#!/bin/sh

export LD_LIBRARY_PATH=/usr/lib/arm-qt/lib:/usr/lib/arm-qt/plugins/platforms:/usr/lib/arm-tslib/lib:$LD_LIBRARY_PATH  # 设置动态连接库路径

export QT_PLUGIN_PATH=/usr/lib/arm-qt/plugins  # 指定 Qt 插件路径

export XDG_RUNTIME_DIR=/usr/lib   # Qt 将使用默认的运行时目录

export QT_QPA_FONTDIR=/usr/share/fonts   # Qt加载字体的目录

######### 下面是自己的自启动程序 #########
# 自启动程序
./qt_projects/01.智能家居/insmod.sh     # 加载驱动

sleep 2 
echo "01_test_v2 run......"
./qt_projects/01.智能家居/01_test_v2 &  # 运行QT程序,&表示在后台运行
  • 最终终于实现了开机自启动
相关推荐
虾..13 小时前
Linux 软硬链接和动静态库
linux·运维·服务器
Evan芙13 小时前
Linux常见的日志服务管理的常见日志服务
linux·运维·服务器
hkhkhkhkh12315 小时前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen16 小时前
Linux字符串处理
linux·string
张童瑶16 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功12316 小时前
什么是SELinux
linux
石小千16 小时前
Linux安装OpenProject
linux·运维
柏木乃一16 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-309016 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu
百年渔翁_肯肯17 小时前
Linux 与 Unix 的核心区别(清晰对比版)
linux·运维·unix