linuxdeployqt编译
2021-10-28 本文已影响0人
_compass
qt在linux上打包时可使用linuxdeployqt进行链接库链接。但官网上在某个版本之后,需要自己编译linuxdeployqt使用,否则会报无法使用问题。即:此工具需要自己编译:
1. 安装pathelf
在Ubuntu上使用命令:
sudo apt install pathelf
在RedHad系列(例如CentOS)上使用命令:
sudo yum install pathelf
2. 安装cmake
在Ubuntu上使用命令:
sudo apt install cmake
同样:CentOS使用:
sudo yum install cmake
3. 修改.bashrc环境变量
sudo vim ~/.bashrc
在弹出的框里,按下i键插入,输入以下:
export PATH=/home/compass/Qt5.14.2/5.14.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/compass/Qt5.14.2/5.14.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/compass/Qt5.14.2/5.14.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/compass/Qt5.14.2/5/14.2/gcc_64/qml:$QML2_IMPORT_PATH
接着按下esc键,输入:wq保存退出
source ~/.bashrc
3. 下载linuxdeployqt源码与修改
我这里已经下载过了,如果没有下载,则可以clone一个:
git clone https://github.com/probonopd/linuxdeployqt --depth=1
然后在下载的源码里,修改tools/linuxdeployqt/main.cpp源码,搜索到源码里的:
strverscmp(glcv, "2.27")
将它注释掉:
image修改之后保存。然后回到linuxdeployqt目录,使用cmake编译:
cmake CMakeLists.txt
编译完了之后,生成了makefile文件,再执行make.
最后在tools/linuxdeployqt目录生成一个可执行文件:linuxdeployqt
Ubuntu上将linuxdeployqt文件拷贝到/usr/local/bin使用
在任何一个位置,使用./linuxdeployqt能正常使用,即安装成功了。
4. 打包
在项目的release文件夹下,使用linuxdeployqt xxx -appimage
即可生成绿色安装文件夹。
5. 编写启动脚本
sudo vim runApp.sh
在弹出的框里输入:
#!/bin/bash
appdir=pwd
export LD_LIBRARY_PATH=$appdir/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$appdir/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=$appdir/qml:$QML2_IMPORT_PATH
./CMReader
按下esc键,输入:wq之后,给sh文件添加权限:
sudo chmod +x runApp.sh
启动的时候即可之后用runApp启动即可。