我创建了一个简单的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
环境变量
你如何建立你的图书馆(IDE ,项目设置)?哪个Linux发行版和Qt是如何安装的(其中一些与旧版Qt4捆绑在一起)? 输出是什么:'qmake --version'? – Dmitriy
德米特里你好。我使用fedora25。 qmake --version的输出是 QMake版本2.01a 在/ usr/lib64中使用Qt版本4.8.7,但我在/ usr/bin中都有qmake-qt4和qmake-qt5可执行文件。 –