环境变量设置异常导致UOS文件管理器无法正常运行
编译QT5.15.2,与UOS20.9的QT依赖冲突
- 现象
- 原因
- 解决方法
现象
重启系统后UOS桌面变成黑色,没有任何图标,任务栏的应用本来是有预览的,但也变得不可用。
原因
找了很久,查到原来是dde-file-manager未能正常启动。直接在终端运行dde-file-manager,会报一个错:
cannot mix incompatible qt library(5.15.8) with this library(5.15.2)
这就很明显了,QT的库不兼容。但是因为什么导致不兼容呢?想起前几天从源码编译了QT5.15.2,还配置了环境变量。进入/usr/bin用ldd dde-file-manager 看看这个程序依赖哪些库,看到了有这么 一行:
libQt5Xml.so.5 => /data/Qt-5.15.2/lib/libQt5Xml.so.5
这个/data/Qt-5.15.2就是我新编译的QT的安装目录。那原因就是曾经配置了/etc/profile:
export QTDIR="/data/Qt-5.15.2"
export PATH="$QTDIR/bin:$PATH"
export MANPATH="$QTDIR/man:$MANPATH"
export LD_LIBRARY_PATH="/usr/lib:$QTDIR/lib:$LD_LIBRARY_PATH"
export QT_SELECT="qt-5.15.2"
问题在于这行
export LD_LIBRARY_PATH="/usr/lib:$QTDIR/lib:$LD_LIBRARY_PATH"
我配置的LD_LIBRARY_PATH把$QTDIR/lib加进来了,这里的库和/usr/lib里的库有冲突。
解决方法
要解决也不难,就是把第三行注释掉。
export QTDIR="/data/Qt-5.15.2"
export PATH="$QTDIR/bin:$PATH"
export MANPATH="$QTDIR/man:$MANPATH"
#export LD_LIBRARY_PATH="/usr/lib:$QTDIR/lib:$LD_LIBRARY_PATH"
export QT_SELECT="qt-5.15.2"