Linux Ubuntu系统发布Qt程序

  • Post author:
  • Post category:linux




Linux Ubuntu系统发布Qt程序:


1.先将工程使用Release模式编译,得到可执行二进制文件(应用程序)

假设项目名:untitled(项目名根据自己应用程序名而定)

在这里插入图片描述

2.新建目录QtTest

3.在目录QtTest 下建立ldd_copy.sh脚本和 untitled.sh 脚本 (与工程名一致)

ldd_copy.sh

#!/bin/sh

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

untitled.sh

#!/bin/sh

appname=`basename $0 | sed s,\.sh$,,`  
dirname=`dirname $0`  
tmp="${dirname#?}"  

if [ "${dirname%$tmp}" != "/" ]; then  
dirname=$PWD/$dirname  
fi

# set font path
#QT_QPA_FONTDIR=$dirname/fonts
#export QT_QPA_FONTDIR

# set library path 
LD_LIBRARY_PATH=$LD_LIBRATY_PATH:$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"

使用任意文本编辑器就可以新建脚本

在这里插入图片描述

  1. 修改 ldd_copy.sh 和 untitled.sh脚本权限
cd /home/linasi/QtTest #进入QtTest目录
sudo chmod 777 ldd_copy.sh
sudo chmod 777 untitled.sh



二、提取依赖包

将ldd_copy.sh脚本复制到程序编译输出文件夹中;

如build-untitled-Desktop_Qt_5_15_2_GCC_64bit-Release

cd命令进入build-untitled-Desktop_Qt_5_15_2_GCC_64bit-Release目录

cd /home/linasi/build-untitled-Desktop_Qt_5_15_2_GCC_64bit-Release 

运行命令以下命令(会在该文件夹中生成一个lib文件夹)

sudo ./ldd_copy.sh untitled

如果报错运行下面的命令

sudo bash ./ldd_copy.sh untitled

将lib里所有的文件和运行程序build-untitled-Desktop_Qt_5_15_2_GCC_64bit-Release/untitled复制到自己新建目录QtTest中(不要复制文件夹,直接把文件夹下的东西复制进去),然后将lib文件夹删除

如需root权限删除,在终端中直接输入sudo nautilus 命令,以管理员权限打开文件夹

找到要删除的文件或文件夹,执行删除操作,操作完关掉使用此命令打开的文件夹,释放终端

sudo nautilus

进入QT的安装目录,进入platforms文件夹中

我的是/home/linasi/Qt/5.15.2/gcc_64/plugins/platforms, 将 ldd_copy.sh拷贝到此目录下

运行以下命令(会在该文件夹中生成一个lib文件夹)

sudo ./ldd_copy.sh libqxcb.so

如果报错运行以下命令

sudo bash ./ldd_copy.sh libqxcb.so

将lib里所有的文件复制到目录QtTest中,复制中有相同文件可以替换;

删除该文件夹中的lib 和 ldd_copy.sh;()

将整个platforms文件夹复制目录QtTest中, 这时复制的是整个文件夹,这使得目录QtTest中会多出一个platforms文件夹;

将/home/linasi/Qt/5.15.2/gcc_64/plugins目录下imageformats、platforminputcontexts文件夹复制到目录QtTest中,其中imageformats目录下是支持不同格式图片的库文件,platforminputcontexts目录下是支持中文输入的库文件;

将上述新建的QtTest文件夹拷贝到其他未安装QT的相同linux系统下,直接运行目录中 untitled.sh 脚本即可启动程序.

#输入以下命令 
 ./untitled.sh # ./表示当前目录,先 cd 命令切换到untitled.sh所在目录。



设置双击启动应用程序,添加图标

在Ubuntu中,找不到程序图标,只能.sh启动的解决方法

桌面图标在/usr/share/applications中,在该文件夹下打开终端

输入以下命令创建图标

#untitled为应用程序名字
sudo gedit untitled.desktop 

在打开的.desktop中填入以下内容

[Desktop Entry]
Version=4.0
Type=Application
Name=  test
Comment=Idea Studio
Exec=/home/linasi/QtTest/untitled.sh %F
Icon=/home/linasi/QtTest/untitled.png
Terminal=false
StartupNotify=true
Categories=Application

在这里插入图片描述

右键untitled.desktop,复制到桌面

在这里插入图片描述

右键桌面untitled.desktop,允许启动

在这里插入图片描述

双击test启动程序,效果如下

在这里插入图片描述




发布Qt服务器控制台程序

#打包步骤和前面一样
#用WinSCP将文件夹上传到服务器后
#在PuTTY终端修改文件权限
#命令如下
chmod 777 fuwuqiApp
chmod 777 fuwuqiApp.sh

在这里插入图片描述

#启动程序
./fuwuqiApp.sh

在这里插入图片描述



版权声明:本文为xiaobai_cpp原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。