1、下载和安装linuxdeployqt

1.1 下载 linuxdeployqt

wget https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage

无法使用github的可以用百度云:链接: https://pan.baidu.com/s/1ArvBU8vSS6MqaIHWxcpl4Q 提取码: xk2h

1.2 安装 linuxdeployqt

# 给可执行权限
chmod +x linuxdeployqt-5-x86_64.AppImage

# 拷贝到 /usr/local/bin目录下
cp linuxdeployqt-5-x86_64.AppImage /usr/local/bin/linuxdeployqt

# 测试,打印版本信息
linuxdeployqt -version

2、配置 qt 的环境变量

修改 .bashrc 文件

sudo gedit ~/.bashrc

在文件末尾追加以下内容:

#qt库的安装目录
export QTDIR=/home/gj/Qt5.14.0/5.14.0/gcc_64
#添加QTDIR的bin目录到PATH,终端输入Qt的命令,系统能中找到他们
export PATH=$QTDIR/bin:$PATH
#程序运行时,库的搜索路径
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#Qt插件的安装目录
export QT_PLUGIN_PATH=$QTDIR/plugins
#qml
export QML2_PATH=$QTDIR/qml

注:home/gj/Qt5.14.0/5.14.0/gcc_64 改成自己的目录

使配置文件生效:

source ~/.bashrc

3、构建relese版本的应用程序

3.1 运行Qt Creator生成release版本的可执行文件。

3.2 创建一个空文件夹,然后将可执行文件复制到此文件夹下。

mkdir ~/pack

4、配置ldd缺失的环境变量(可选)

4.1 执行ldd命令

ldd simple_live_qtwidgets 
	linux-vdso.so.1 (0x00007ffc9cf85000)
	libids_peak.so => not found
	libids_peak_ipl.so => not found
	libQt5Widgets.so.5 => /home/gj/Qt5.14.0/5.14.0/gcc_64/lib/libQt5Widgets.so.5 (0x00007a5b17c00000)
	libQt5Gui.so.5 => /home/gj/Qt5.14.0/5.14.0/gcc_64/lib/libQt5Gui.so.5 (0x00007a5b17000000)
...

如何没有库的缺失,可忽略次步骤。

4.2 库缺失

如果出现 lib*.so.1 => not found,类似此类的输出,说明该动态链接库找不到。此时可以在终端配置临时变量LD_LIBRARY_PATH,以便linuxdeployqt能找到缺失的库文件。

export LD_LIBRARY_PATH=/opt/ids-peak-with-ueyetl_2.12.0.0-54_amd64/lib:$LD_LIBRARY_PATH

然后再执行ldd 命令

ldd simple_live_qtwidgets 
	linux-vdso.so.1 (0x00007ffd5af2e000)
	libids_peak.so => /opt/ids-peak-with-ueyetl_2.12.0.0-54_amd64/lib/libids_peak.so (0x00007fa86e800000)
	libids_peak_ipl.so => /opt/ids-peak-with-ueyetl_2.12.0.0-54_amd64/lib/libids_peak_ipl.so (0x00007fa86ca00000)
	libQt5Widgets.so.5 => /home/gj/Qt5.14.0/5.14.0/gcc_64/lib/libQt5Widgets.so.5 (0x00007fa86be00000)
	libQt5Gui.so.5 => /home/gj/Qt5.14.0/5.14.0/gcc_64/lib/libQt5Gui.so.5 (0x00007fa86b200000)
...

注:libids_peak.so和libdis_peak_ipl.so 是一个第三方的库,该库的位置是/opt/ids-peak-with-ueyetl_2.12.0.0-54_amd64/

5、运行linuxdeployqt打包命令 

~/pack$ linuxdeployqt simple_live_qtwidgets -appimage -bundle-non-qt-libs
linuxdeployqt 4 (commit 8b3ded6), build 571 built on 2018-10-07 20:58:12 UTC
Not using FHS-like mode
app-binary: "/home/gj/pack/simple_live_qtwidgets"
appDirPath: "/home/gj/pack"
relativeBinPath: "simple_live_qtwidgets"

在终端运行qt程序

~/pack$ ./simple_live_qtwidgets 

注:simple_live_qtwidgets 改成自己的应用程序

6、创建快捷方式(可选)

假设编译出来的可执行程序名:myapp

6.1 创建.desktop文件

sudo gedit ~/.local/share/applications/myapp.desktop

6.2 编辑.desktop文件

[Desktop Entry]
Type=Application
Name=myapp
Comment=myapp v1.0 
Exec=/home/gj/myapp/myapp
Icon=/home/gj/myapp/myapp.png
Terminal=false 
Categories=Application

各字段的含义如下:

  • Name:应用程序的名称。
  • Comment:应用程序的简要描述。
  • Exec:应用程序可执行文件的完整路径。
  • Icon:应用程序图标的完整路径。
  • Terminal:是否在终端中运行应用程序,false表示不在终端运行。
  • Type:条目的类型,一般为Application
  • Categories:应用程序所属的类别,用分号分隔。

6.3 赋予运行权限

sudo chmod +x ~/.local/share/applications/myapp.desktop

6.4 将.desktop文件复制到桌面

cp ~/.local/share/applications/myapp.desktop ~/桌面

6.5 允许运行

在桌面找到图标,右键:允许运行

更多推荐