Ubuntu22.04下使用linuxdeployqt对Qt项目打包
·

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 允许运行
在桌面找到图标,右键:允许运行
更多推荐
所有评论(0)