ubuntu12.04+qt5.6.3下qt程序打包方法

1,首先我是参考的这个链接https://blog.csdn.net/z3512498/article/details/64922180

方法如下:

1,找个地方,比如桌面,创建空文件夹AEightStandMaster【这个是我的应用程序的名字】,这个将用来存放AEightStandMaster程序的运行文件 .

2,先将工程使用Release模式编译 。编译完成之后。去你的release文件夹(带二进制文件AEightStandMaster的那个)拷贝到你1步骤建立的文件夹里面去。

3,在上一步的文件夹中【也就是release文件夹】新建文件copylib.sh,通过指令设置权限chmod 777 copylib.sh 

4,在copylib.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,打开终端并进入到当前文件夹【也就是放copylib.sh所在的release文件夹】,输入./copylib.sh AEightStandMaster

运行完上述指令后,同目录下会生成lib文件夹,这里我们将其称作aEightStandMaster的库文件夹,避免与下文内容混淆

6、将AEightStandMaster的二进制文件和 AEightStandMaster的库文件夹里所有的文件复制到AEightStandMaster文件夹[就是第一步新建的文件夹]中,注意:这里是把lib里的所有文件复制出来,不用复制lib文件夹

7,进入你的linux下的QT的安装目录,找到platforms文件夹,笔者的路径是

~/Qt5.7.1/5.7/gcc_64/plugins/platforms 
将整个platforms文件夹复制到AEightStandMaster文件夹中,注意:这时复制的是整个文件夹,这使得AEightStandMaster文件夹中会多出一个platforms文件夹

8,将上文的copylib.sh放到AEightStandMaster/platforms/中,并运行./copylib.sh libqxcb.so,这时会得到lib文件夹——libqxcb.so的库文件夹 
ps:为什么是libqxcb.so呢?具体看文末的参考资料,这个跟你要运行的程序有关,需要用到哪些QT的库,就再打包对应的东西。这时,最好是通过ldd命令 ldd libqxcb.so 看下还缺啥库。因为有时候还不能完全包含进去。找到这些库。放到与libqxcb.so文件一个目录里面。

9,

AEightStandMaster文件夹中新建脚本AEightStandMaster.sh,执行chmod 777 AEightStandMaster.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 "$@"

到这里就基本完成了,将AEightStandMaster文件夹复制到需要运行程序的目标主机即可,在目标主机中,运行程序,都采用 ./AEightStandMaster.sh而不是./AEightStandMaster,即运行程序的sh脚本,而不是二进制文件
上面这些文件通过SecureFXPortable.exe这个软件。走ssh协议。远程放到目标主机上。然后运行。但是。。。在实际运行的时候。我通过SecureCRTPortable.exe这个软件。走ssh命令远程连接过去。发现在执行命令程序之前。还需要在这个软件里面输入 export DISPLAY=:0.0 命令。然后执行./AEightStandMaster.sh 才会有界面出来。

上面这些就是qt打包并通过远程命令执行起来的步骤。

我们实际在使用的时候。会做成脚本启动,那就要对/etc/rc.local这个文件。编辑下

echo "this just a test" > /home/text.log#这个是打个日志,看看是否执行了。方便调试用。
/home/pc/AEightStandMaster/AEightStandMaster.sh #这个命令就是可执行二进制文件所在的绝对路径。如果要开机自启动的话。AEightStandMaster.sh里面需要
export LD_LIBRARY_PATH

export DISPLAY=:0.0 #这句要加上。这样执行sh文件就会有界面出来的。
$dirname/$appname "$@"

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第31章《openwrt开发笔记》讲解了如何在Ubuntu 12.04和OpenWrt 15.05上进行4G拨号上网。在开始之前,我们需要确保Ubuntu安装了相关驱动程序和依赖项。 首先,我们需要在Ubuntu上安装modem-manager和usb-modeswitch。可以使用以下命令来安装: sudo apt-get install modem-manager usb-modeswitch 安装完成后,我们需要在OpenWrt设备上配置4G拨号连接。连接设备到计算机上,然后通过串口或SSH登录到OpenWrt。 首先,我们需要编辑网络配置文件。可以使用以下命令打开配置文件: vi /etc/config/network 然后,将以下配置添加到配置文件末尾: config interface 'wwan' option proto '3g' option device '/dev/ttyUSB0' option service 'umts' 保存并关闭文件。然后,重启网络服务,使配置生效: /etc/init.d/network restart 接下来,我们需要为4G连接配置一个接口。在OpenWrt中,可以使用以下命令: uci set network.wwan=interface uci set network.wwan.proto='3g' uci set network.wwan.device='/dev/ttyUSB0' uci set network.wwan.service='umts' uci commit network /etc/init.d/network reload 完成以上步骤后,我们可以使用以下命令进行拨号并进行4G上网: /usr/sbin/usbmode -s -v 0x12d1 -p 0x1436 /usr/sbin/usbmode -s -v 0x12d1 -p 0x1001 这将启动拨号过程,并将设备连接到4G网络。拨号成功后,我们就可以在OpenWrt设备上访问互联网了。 综上所述,《openwrt开发笔记》第31章介绍了如何在Ubuntu 12.04和OpenWrt 15.05上进行4G拨号上网。这个过程涉及到在Ubuntu上安装相关驱动程序和依赖项,然后在OpenWrt设备上配置和启动4G连接。完成这些步骤后,我们可以成功地进行4G上网了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值