編譯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"