树莓派(raspberry pi os系统,带桌面)打包程序并设置开机自启动

在树莓派上用qt开发程序完成后,需要打包程序,这样在其他的没有程序开发环境的树莓派上也能运行,可以使用下面的方法打包qt程序:

1.在release模式下编译代码,将build-xxx release文件夹中生成的执行文件复制到自己的执行文件夹中,我这里是放在`/home/pi/output`中.
	
2.在output文件夹中新建脚本`cplib.sh`:
此脚本会将程序依赖库复制到当前文件夹中.
#!/bin/sh  
exe="vivoMES"         # 修改发布程序的名称
des="/home/pi/output/" # 修改输出可执行文件路径
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des 

3.在output文件夹中新建脚本`vivoMES.sh`:(请将脚本名称设置为可执行文件同名)
此脚本会执行程序.
#!/bin/sh  
sleep 10 # 保证系统完成初始化后再启动目标程序,自行斟酌是否需要
appname=`basename $0 | sed s,\.sh$,,`      
dirname=`dirname $0`  
tmp="${dirname#?}"     
if [ "${dirname%$tmp}" != "/" ]; then  
dirname=$PWD/$dirname  
fi  
LD_LIBRARY_PATH=$dirname  
export LD_LIBRARY_PATH  
$dirname/$appname "$@" 

4.给脚本上权限`chmod +x cplib.sh`;`chmod +x vivoMES.sh`.

5.运行`cplib.sh`: bash /home/pi/output/cplib.sh
此时执行文件依赖的库都会被赋值到output文件夹中.
测试程序是否可执行: bash /home/pi/output/vivoMES.sh

至此,打包程序已完成,接下来是设置开机自启动.

打包完成之后,需要设置开机自启动,树莓派的开机自启动有多种方法,因为我们使用的系统是带有桌面的,所以需要使用桌面启动的方法;此方法是在加载了桌面后再启动我们自定义的程序,因此需要安装带有桌面的版本,如果不是请跳过。具体步骤如下:
(1)在/home/pi/.config/目录下新建一个名为 autostart 的文件夹,代码如下;

pi@raspberry:~ $ mkdir .config/autostart

(2)在 autostart 目录下新建testboot.desktop(经测试名字任意,但后缀必须是.desktop):

pi@raspberry:~ $ nano .config/autostart/testboot.desktop

(3)在testboot.desktop中输入下面内容:
#文件内容如下:

[Desktop Entry]
Type=Application
Name=testboot
NoDisplay=true
Exec=/home/pi/testboot.sh

(4)sudo reboot 重启测试
注意:这个方法除了依赖桌面之外,如果开启了多个桌面则会导致自定义的程序多次启动。比如系统启动桌面会调用一次testboot.sh脚本,如果再用远程桌面登录到树莓派,脚本会再执行一次。

参考博客:https://blog.csdn.net/weixin_48424192/article/details/123986421

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值