1.先将工程使用Release模式编译
2.打开编译输出文件的文件夹(带二进制的可执行文件如test_p)
3.在编译生成的文件夹中新建一个脚本文件 install.sh,通过指令chmod 777 install.sh修改权限
4.向install.sh中写入以下的内容。
#!/bin/bash
LibDir=$PWD"/lib"
Target=$1
lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))
$(mkdir $LibDir)
for Variable in ${lib_array[@]}
do
cp "$Variable" $LibDir
done
5、运行./install.sh test_p,运行完上述的指令后,同目录下会生成lib文件夹,
6、创建空白installer文件夹,将上一步lib文件夹下的文件全部复制到installer文件夹中。
7、.进入QT的安装目录,找到platforms文件夹,如:/usr/lib/arm-linux-gnueabihf/qt5/plugins/platforms,
将整个platform文件夹复制到installer文件夹中
8.将上文的install.sh文件放到installer/platfroms/中,运行./install.sh libqxcb.so,这时会新生成一个lib文件夹——libqxcb.so的库文件夹
9.将libqxcb.so的库文件夹中的所有文件复制到installer文件夹中,然后删除installer/platfroms/lib文件夹
10.在installer文件夹中新建脚本文件test_p(程序的名称).sh,执行chmod 777 test_p.sh,并将以下内容写入
#!/bin/sh
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 "$@"
11、将二进制文件test_p和图标等其他资源文件复制到installer文件夹中,就制作完成了一个文件安装包
12、在installer下新建test_p.desktop文件,并写入以下内容
[Desktop Entry]
Type=Application
Name=World //显示在桌面的程序名
Exec=/home/pi/Downloads/test_install/Test_P.sh //可执行文件的路径
Icon=/home/pi/Downloads/test_install/Pyte_Data/icon.png //快捷方式的图标文件路径
Terminal=false
Encoding=UTF-8
Version=1.0``
13、在installer下新建setup脚本文件用于安装,并写入以下内容
#!/bin/bash
#start pi spi
pwds=/boot/config.txt
sudo sed -i 's/dtparam=spi=off//g' $pwds
sudo sed -i 's/dtparam=spi=on//g' $pwds
sudo sed -i '$a dtparam=spi=on' $pwds
#reboot后生效
CurDir=$PWD"/test_p.desktop"
ExecDir=$PWD"/Test_P.sh"
IconDir=$PWD"/Pyte_Data/icon.png"
sudo sed -i "4c Exec=$ExecDir" $CurDir
sudo sed -i "5c Icon=$IconDir" $CurDir
sudo cp $CurDir /usr/share/applications/test_p.desktop
cp $CurDir /home/pi/Desktop/test_p.desktop
14、运行./setup安装程序并生成桌面快捷方式```
注意:文中的test_p为工程中生存的可执行文件名,根据自己实际情况替换。
若运行时提示.so文件找不到,可以修改/etc/ld.so.conf文件,在其尾部添加so文件所在文件夹路径,
或者将so文件放到/usr/local/lib下。
然后执行ldconfig重新加载。