前言
用的国产Linux系统,系统自带Qt4的库,开发用的Qt5.14,在不影响原有Qt4的库的前提下,打包发布,整了好长一段时间,记录一下
PS:我这国产Linux下WPS用的Qt4的库,不能影响其他软件正常使用
一、Pro文件
硬编码可执行文件库的搜索路径,qt.pro添加如下:
unix:!macx: LIBS += -L./QtLib
QMAKE_LFLAGS += -Wl,-rpath=./QtLib
二、qt.conf文件
1.qt工程
创建并添加qt.conf文件
[Paths]
Prefix=./QtLib
Plugins=plugins
Libraries=lib
2.打包
打包时需要将qt.conf文件放到执行文件目录下,打包需要依赖qt库命令如下:
ldd 程序名 | grep -i qt
相关库存放路径如下:
QtLib目录结构如下:
20220105补充
Linux下Qt应用程序无法输入中文,需要添加插件库libfcitxplatforminputcontextplugin.so(系统自带或者sudo apt-get install fcitx-libs-qt5 下载),如下图所示,同时qt安装目录下也需要该库,并且增加执行权限
20220329继续补充
qt打包对应安装目录,需要那个目录下的so,conf就添加对应的项,对应表格如下
Entry | Default Value |
---|---|
Prefix | QCoreApplication::applicationDirPath() |
Documentation | doc |
Headers | include |
Libraries | lib |
LibraryExecutables | libexec |
Binaries | bin |
Plugins | plugins |
Imports | imports |
Qml2Imports | qml |
ArchData | . |
Data | . |
Translations | translations |
Examples | examples |
Tests | tests |
Settings | . |
3.配置动态库加载路径
配置的是其他依赖库的加载路径,不是qt的,手动添加如下:
pwd (回车拷贝)
sudo vim /etc/ld.so.conf (末尾粘贴)
sudo ldconfig
install.sh脚本添加如下,需要sudo运行:
ConfPwd="/etc/ld.so.conf"
AppPwd=$PWD
grep -w $AppPwd $ConfPwd && echo "pwd exist!"||echo $AppPwd >> $ConfPwd
sudo ldconfig