设置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程序,&表示在后台运行
  • 最终终于实现了开机自启动
相关推荐
Physicist in Geophy.12 分钟前
新版ubuntu中sac安装问题(缺少libncurses5)
linux·运维·ubuntu
菲兹园长20 分钟前
微服务组件(E、L、N、O、G)
linux·服务器·gateway
xier_ran1 小时前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
richxu202510011 小时前
Linux本地部署deepseek大模型之 6. Windows本地连接远程云服务器中的MySQL常见错误的解决办法
linux·服务器·windows
Ryan ZX1 小时前
Ubuntu 升级OpenSSH10.2p1与OpenSSL3.5.4版本避坑实践
linux·运维·服务器·ubuntu
Aevget2 小时前
QtitanNavigation助力能源数字化转型:打造清晰可控的系统导航体验
c++·qt·嵌入式·能源·界面控件·ui开发
尘缘浮梦2 小时前
RobotFramework框架环境搭建
linux·开发语言·python
江公望3 小时前
linux kernel struct clk_init_data结构浅解
linux
LCG元3 小时前
Sed 和 Awk 的终极实战:用一行命令搞定90%的文本处理
linux
NO.10243 小时前
11.4八股
java·linux·数据库