目录
一.创建项目
这里我们任选qt的例子当项目
图1 创建项目
图2 运行效果
二.安装linuxdeployqt
1.安装patchelf和cmake
sudo apt install patchelf
sudo apt-get install cmake
2.打开.bashrc,添加qt环境.(下面是我添加的路径,各位根据自己的路径自行修改)
#add Qt
#add QT ENV
export PATH=/home/abc/Qt/Qt_6_5/6.5.3/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/abc/Qt/Qt_6_5/6.5.3/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/abc/Qt/Qt_6_5/6.5.3/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/abc/Qt/Qt_6_5/6.5.3/gcc_64/qml:$QML2_IMPORT_PATH
添加保存完后,source一下。在命令行加入下面的代码
source ~/.bashrc
下载linuxdeployqt
git clone https://github.com/probonopd/linuxdeployqt.git
在linuxdeployqt目录下使用cmake
cmake CMakeLists.txt
再使用make
make
检测是否安装完成
./linuxdeployqt
复制文件linuxdeployqt
三.linuxdeployqt打包
release编译
这里我出现了选择release后,release文件夹下没有可执行文件,原因是选择后还有点击绿色三角形运行
来到项目的release文件夹
将可执行文件复制到空白文件夹下,这里是cube
linuxdeployqt cube -appimage
打包完成
四.写一个脚本,并且双击脚本就可以运行程序
#!/bin/bash
source /home/popo/.bashrc
# 获取脚本所在的工作目录
workdir=$(cd "$(dirname "$0")"; pwd)
echo "当前工作目录: $workdir"
# 设置环境变量,确保可以找到所需的库文件
export LD_LIBRARY_PATH="$workdir:$LD_LIBRARY_PATH"
#add Qt
#add QT ENV
export PATH=/home/popo/Qt/Qt_6_5/6.5.3/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/popo/Qt/Qt_6_5/6.5.3/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/popo/Qt/Qt_6_5/6.5.3/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/popo/Qt/Qt_6_5/6.5.3/gcc_64/qml:$QML2_IMPORT_PATH
# 切换到工作目录
cd "$workdir" || { echo "无法切换到目录: $workdir"; exit 1; }
# 运行 cube 程序,并捕获任何错误
if [ -f "./cube" ]; then
echo "正在运行 cube..."
./cube
else
echo "找不到 cube 可执行文件。"
exit 1
fi
# 检查 cube 是否成功运行
if [ $? -eq 0 ]; then
echo "cube 运行成功。"
else
echo "cube 运行失败。"
exit 1
fi
踩坑经历: 注意要把qt的环境加入到脚本中,否则可嫩出现命令窗口运行脚本是OK的,但是双击运行脚本显示黑屏幕
如何调试发现双击运行执行脚本的错误
1、安装 dconf-editor
sudo apt-get install dconf-editor
2、安装完成后直接输入dconf-editor打开dconf-editor
dconf-editor
3、org->gnome->natuilus->preferences->executable-text-activation
关闭使用默认值 自定义值改为ask
4、对脚本加上可执行权限,双击后会出现询问窗口
5、选择终端运行
五、展示效果
六 、扩展性
如果将脚本放置桌面
修改脚本中的workdir=$(cd "$(dirname "$0")"; pwd)
改为固定路径