2017-04-18 46 views
0

我創建了一個簡單的C++庫。運行ldd給應用程序正在連接qt5和qt4

ldd libTESTPlugin.so.1.0.0 | grep -i qt 
    libQt5Widgets.so.5 => /lib64/libQt5Widgets.so.5 (0x00007f5345f14000) 
    libQt5Gui.so.5 => /lib64/libQt5Gui.so.5 (0x00007f5345a71000) 
    libQt5Core.so.5 => /lib64/libQt5Core.so.5 (0x00007f53455e7000) 
    libQtXml.so.4 => /lib64/libQtXml.so.4 (0x00007f5344074000) 
    libQtCore.so.4 => /lib64/libQtCore.so.4 (0x00007f5343b71000) 
    libQtGui.so.4 => /lib64/libQtGui.so.4 (0x00007f5342e4b000) 
    libQtNetwork.so.4 => /lib64/libQtNetwork.so.4 (0x00007f5342afa000) 
    libQtSvg.so.4 => /lib64/libQtSvg.so.4 (0x00007f53428a0000) 
    libQtWebKit.so.4 => /lib64/libQtWebKit.so.4 (0x00007f53403b3000) 
    libQtSql.so.4 => /lib64/libQtSql.so.4 (0x00007f5340170000) 
    libQtLocation.so.1 => /lib64/libQtLocation.so.1 (0x00007f5336a09000) 
    libQtSensors.so.1 => /lib64/libQtSensors.so.1 (0x00007f53367d5000) 
    libQtOpenGL.so.4 => /lib64/libQtOpenGL.so.4 (0x00007f5334ccb000) 
    libQtDeclarative.so.4 => /lib64/libQtDeclarative.so.4 (0x00007f5329d06000) 
    libQtScript.so.4 => /lib64/libQtScript.so.4 (0x00007f5329845000) 
    libQtXmlPatterns.so.4 => /lib64/libQtXmlPatterns.so.4 (0x00007f53291c0000) 

所以我的lib與qt4和qt5都鏈接。它與另一個僅與qt5鏈接的軟件給我帶來了一些集成問題。

有沒有辦法指定只與Qt5和不與Qt4的鏈接?

export QT_SELECT = <Qt version>

例如:

export QT_SELECT = qt5

此外,如果您使用的是Qt Creator的,檢查使用QT_SELECT環境變量

+1

你如何建立你的圖書館(IDE ,項目設置)?哪個Linux發行版和Qt是如何安裝的(其中一些與舊版Qt4捆綁在一起)? 輸出是什麼:'qmake --version'? – Dmitriy

+0

德米特里你好。我使用fedora25。 qmake --version的輸出是 QMake版本2.01a 在/ usr/lib64中使用Qt版本4.8.7,但我在/ usr/bin中都有qmake-qt4和qmake-qt5可執行文件。 –

回答

0

嘗試設置QT5作爲默認的QT版本再次你的構建配置。

PS: 我不知道他們是否還包括qtchooser,但你可以嘗試運行該命令列出您的系統上安裝的所有版本:

qtchooser -list-versions

+0

感謝您的及時回覆。我使用QtCreator並建立配置似乎是使用qt5。有效的qmake調用顯示「qmake-qt5 /home/pp/QGis/code/TESTPlugin/TESTPlugin.pro -spec linux-g ++ CONFIG + = debug CONFIG + = qml_debug &&/usr/bin/make qmake_all」 –