[Others] Qt library (5.15.3)不兼容V20.5下编译的软件
Tofloor
poster avatar
老蒋头
deepin
2022-06-09 05:13
Author

基于deepin V20.5研发的软件,Nuitka编译,dpkg打包,在所有V20.5机器上正常运行,升级V20.6以后,出现Cannot mix incompatible Qt library (5.15.3) with this library (5.15.1),报错,没有办法,只有在V20.6环境重新编译,替换掉原来的软件。虽然,重新编译,重新分发难度也不大,但是,应用商店是不是还有其他的软件也出了问题?按理说,小编号升级应该可以向下兼容,这次我中彩了?

Reply Favorite View the author
All Replies
sukanka
deepin
2022-06-09 06:47
#1

Qt 都是这样子的捏。你试试把软件包自带的Qt 组件都删掉捏。

Reply View the author
fuuko
deepin
2022-06-09 16:25
#2

是不是因为你用了private的什么组件?

Reply View the author
zccrs
deepin
2022-06-09 17:28
#3

你在软件包里自己携带了Qt的库?它已经提示你了不能把不同版本的Qt库混用。说明这个程序即加载了5.15.3的库,也加载了5.15.1的

Reply View the author
老蒋头
deepin
2022-06-09 18:55
#4

是的,因该是Nuitka编译的时候,是没有带Qt库的,最大的可能就是软件开发用的Qt库版本低了,打包的时候因为没带库,所以新版本的Qt库无法运行旧库的功能?

Reply View the author
老蒋头
deepin
2022-06-09 18:58
#5
老蒋头

是的,因该是Nuitka编译的时候,是没有带Qt库的,最大的可能就是软件开发用的Qt库版本低了,打包的时候因为没带库,所以新版本的Qt库无法运行旧库的功能?

我再来尝试带Qt库打包,看看,程序会不会优先执行本项目的库。

Reply View the author
zccrs
deepin
2022-06-09 19:58
#6
老蒋头

我再来尝试带Qt库打包,看看,程序会不会优先执行本项目的库。

不是的,不要自带Qt的库,出现这种情况的原因最大的可能就是软件自带了Qt的库导致的,应该完全使用系统的Qt库。可以先看一些东西,用gdb启动程序,等停止执行之后,看下 /proc/$pid/maps 中都是加载了那些动态库(pid换成这个程序自己的进程id),把所有的Qt的so文件列出来,看下哪个是5.15.1的。

Reply View the author
老蒋头
deepin
2022-06-10 18:43
#7
zccrs

不是的,不要自带Qt的库,出现这种情况的原因最大的可能就是软件自带了Qt的库导致的,应该完全使用系统的Qt库。可以先看一些东西,用gdb启动程序,等停止执行之后,看下 /proc/$pid/maps 中都是加载了那些动态库(pid换成这个程序自己的进程id),把所有的Qt的so文件列出来,看下哪个是5.15.1的。

在UOS arm版本下,软件在开发环境下运行的很好,打包编译如果不带Qt库,结果在本机运行的时候都找不到qt库,重新带qt库编译,软件就可以运行了,但是显然,UI元素不在状态。deepin V20.6没有问题了,重新编译一下,不带Qt库,运行正常。deepin ARM版没有V20,所以无法继续写程序了,转UOS arm。但是,问题很多,困难重重。

Reply View the author
zccrs
deepin
2022-06-10 19:42
#8
老蒋头

在UOS arm版本下,软件在开发环境下运行的很好,打包编译如果不带Qt库,结果在本机运行的时候都找不到qt库,重新带qt库编译,软件就可以运行了,但是显然,UI元素不在状态。deepin V20.6没有问题了,重新编译一下,不带Qt库,运行正常。deepin ARM版没有V20,所以无法继续写程序了,转UOS arm。但是,问题很多,困难重重。

听 UOS arm 这个情况恐怕是仓库有些问题。具体是报告什么错误呀

Reply View the author
老蒋头
deepin
2022-06-10 21:42
#9
zccrs

听 UOS arm 这个情况恐怕是仓库有些问题。具体是报告什么错误呀

gcc 在Nuitka下不能用,clang 奇慢无比,打包不带qt,无法运行,带了qt,插件变得无法识别,例如文件管理器,打开背景都是黑色的。正在找原因。

Reply View the author
zccrs
deepin
2022-06-10 22:21
#10
老蒋头

gcc 在Nuitka下不能用,clang 奇慢无比,打包不带qt,无法运行,带了qt,插件变得无法识别,例如文件管理器,打开背景都是黑色的。正在找原因。

用的是 pyqt ?

Reply View the author
zccrs
deepin
2022-06-10 22:22
#11
老蒋头

gcc 在Nuitka下不能用,clang 奇慢无比,打包不带qt,无法运行,带了qt,插件变得无法识别,例如文件管理器,打开背景都是黑色的。正在找原因。

用的是 pyqt ?

Reply View the author
zccrs
deepin
2022-06-10 22:22
#12
It has been deleted!
老蒋头
deepin
2022-06-12 05:23
#13
zccrs

用的是 pyqt ?

pyqt5,我最近几年使用python3写项目。Nuitka编译以后,速度还是可以接受的。

Reply View the author