繁体   English   中英

应用程序正在连接qt5和qt4

[英]application is linking with both qt5 and qt4

我创建了一个简单的c ++库。 运行ldd给

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指定链接?

尝试使用QT_SELECT环境变量将Qt5设置为默认qt版本:

export QT_SELECT = <Qt version>

例如:

export QT_SELECT = qt5

此外,如果您使用的是Qt Creator ,请再次检查您的构建配置。

PS:我不确定它们是否仍然包含qtchooser,但您可以尝试运行此命令列出系统上所有已安装的版本:

qtchooser -list-versions

也许您使用Qt链接另一个lib,例如QWT。 如果你选择了这种lib的错误版本,它可能会加载错误版本的动态Qt库。

有关QWT的解决方案,请参阅https://stackoverflow.com/a/51282459/1328780

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM