qtcreator Qt_5 未找到

qtcreator Qt_5 not found

您好,我在 Ubuntu 16.04 下启动 qtcreator 时遇到问题。报告的错误是:

qtcreator: /usr/bin/../lib/x86_64-linux-gnu/qtcreator/../libQt5Gui.so.5: version `Qt_5_PRIVATE_API' not found (required by /usr/lib/libQt5Widgets.so.5)
qtcreator: /usr/bin/../lib/x86_64-linux-gnu/qtcreator/../libQt5Gui.so.5: version `Qt_5' not found (required by /usr/lib/libQt5Widgets.so.5)

我尝试了其他线程的不同解决方案,但无法成功。任何人都可以帮助或解释问题到底是什么吗?几天前我能够 运行 qtcreator,但是当我今天尝试时,我得到了这个错误。我觉得可能是对应安装了一些应用,可惜说不上是哪一个,只好安装了几个。

更多信息:

qmake --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu

我只从官方仓库安装了qt版本,安装了以下文件:

会不会是配置问题?有没有办法重新配置路径?

可能也很有趣,同一时刻我不能 运行 qtcreator 我不能 运行 rviz 来自 ros-kinetic-package。

rviz
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Reinstalling the application may fix this problem.
Aborted (core dumped)

我尝试清除rviz、ros、qtcreator并重新安装,我安装了qt5-default,但无法解决我的问题。 谢谢你的帮助。

编辑:好的,我花了一些时间再次尝试了这里的解决方案: 这部分解决了问题。使用 LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ qtcreator 我可以重新开始 qtcreator。但这当然根本不能解决问题,我该如何重新配置​​呢

编辑 2:LD_LIBRARY_PATH 解决方案对 rviz 问题没有帮助,它告诉我:

LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ rviz
rviz: error while loading shared libraries: librviz.so: cannot open shared object file: No such file or directory

然后我尝试了

LD_LIBRARY_PATH=/opt/ros/kinetic/lib rviz

有趣的是让 rviz 上线了。

所以我的路径似乎很混乱,问题是为什么以及如何修复它们(将 Qt5.7 库和链接移动到另一个目录是否有帮助)?

(最后要注意的是,其他 ros 工具如 rqt_console、rqt_plot、...也会失败,如果我不在之前添加 LIBRARY_PATH电话。

编辑 3:所以我想我在里面发现了更多。我有一台来自 FLIR 的相机,它使用了一个名为 spinnaker 的库。要安装,必须安装一堆 .deb 包。其中之一是 spinview_qt-.deb。它包含QT5.7版本并安装到/usr/lib.

dpkg --contents spinview-qt-1.10.0.31_amd64.deb 
drwxr-xr-x root/root         0 2017-12-21 23:31 ./
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/share/
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/share/pixmaps/
-rw-r--r-- root/root    129041 2017-12-21 23:31 ./usr/share/pixmaps/SpinnakerIcon.ico
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/share/applications/
-rw-r--r-- root/root       154 2017-12-21 23:31 ./usr/share/applications/spinview.desktop
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/share/doc/
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/
-rw-r--r-- root/root      9190 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/Apache_2.0.txt
-rw-r--r-- root/root    623763 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/Spinnaker-Open-Source-Licenses.pdf
-rw-r--r-- root/root      1485 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/FreeBSD.txt
-rw-r--r-- root/root     27032 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/lgpl_2.1.txt
-rw-r--r-- root/root      1337 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/boost_license.txt
-rw-r--r-- root/root       981 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/FLIR_license.txt
-rw-r--r-- root/root      1597 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/genicam_license.txt
-rw-r--r-- root/root       251 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/changelog.gz
-rw-r--r-- root/root      5387 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/OpenTK_license.txt
-rw-r--r-- root/root     17577 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/freeimage_license.txt
-rw-r--r-- root/root     20993 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/WPCC_BY_SA_license.txt
-rw-r--r-- root/root      7816 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/lgpl_3.0.txt
-rw-r--r-- root/root     25864 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/lgpl_2.0.txt
-rw-r--r-- root/root      2232 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/CLALLSERIAL_license.txt
-rw-r--r-- root/root     10439 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/CPOL_1.02.txt
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/lib/
-rw-r--r-- root/root   5339752 2017-12-21 22:48 ./usr/lib/libQt5Core.so.5.7.0
-rw-r--r-- root/root  25047100 2017-12-21 22:48 ./usr/lib/libicudata.so.56.1
-rw-r--r-- root/root   1365560 2017-12-21 22:48 ./usr/lib/libQt5XcbQpa.so.5.7.0
-rw-r--r-- root/root   1432320 2017-12-21 22:48 ./usr/lib/libQt5Network.so.5.7.0
-rw-r--r-- root/root   5909528 2017-12-21 22:48 ./usr/lib/libQt5Gui.so.5.7.0
-rw-r--r-- root/root    356208 2017-12-21 22:48 ./usr/lib/libQt5OpenGL.so.5.7.0
-rw-r--r-- root/root   6614408 2017-12-21 22:48 ./usr/lib/libQt5Widgets.so.5.7.0
-rw-r--r-- root/root   3374854 2017-12-21 22:48 ./usr/lib/libicui18n.so.56.1
-rw-r--r-- root/root   2070162 2017-12-21 22:48 ./usr/lib/libicuuc.so.56.1
-rw-r--r-- root/root    527104 2017-12-21 22:48 ./usr/lib/libQt5DBus.so.5.7.0
drwxr-xr-x root/root         0 2017-12-21 23:31 ./usr/bin/
-rwxr-xr-x root/root    852544 2017-12-21 23:07 ./usr/bin/SpinView_QT
drwxr-xr-x root/root         0 2017-12-20 02:45 ./usr/bin/platforms/
-rw-r--r-- root/root    303544 2017-12-20 02:45 ./usr/bin/platforms/libqlinuxfb.so
-rw-r--r-- root/root     10192 2017-12-20 02:45 ./usr/bin/platforms/libqxcb.so
-rw-r--r-- root/root    141072 2017-12-20 02:45 ./usr/bin/platforms/libqoffscreen.so
-rw-r--r-- root/root    176720 2017-12-20 02:45 ./usr/bin/platforms/libqminimalegl.so
-rw-r--r-- root/root    140592 2017-12-20 02:45 ./usr/bin/platforms/libqminimal.so
-rw-r--r-- root/root      9968 2017-12-20 02:45 ./usr/bin/platforms/libqeglfs.so
-rwxr-xr-x root/root        70 2017-12-20 02:47 ./usr/bin/spinview
lrwxrwxrwx root/root         0 2017-12-21 23:31 ./usr/share/doc/spinview-qt1/LICENSE -> FLIR_license.txt
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5XcbQpa.so.5 -> libQt5XcbQpa.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Gui.so.5.7 -> libQt5Gui.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5XcbQpa.so.5.7 -> libQt5XcbQpa.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Network.so.5 -> libQt5Network.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Gui.so -> libQt5Gui.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5XcbQpa.so -> libQt5XcbQpa.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5OpenGL.so.5.7 -> libQt5OpenGL.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Network.so -> libQt5Network.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Gui.so.5 -> libQt5Gui.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5DBus.so -> libQt5DBus.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Core.so -> libQt5Core.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Widgets.so.5 -> libQt5Widgets.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5OpenGL.so -> libQt5OpenGL.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libicuuc.so.56 -> libicuuc.so.56.1
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Network.so.5.7 -> libQt5Network.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Core.so.5.7 -> libQt5Core.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libicudata.so.56 -> libicudata.so.56.1
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5DBus.so.5 -> libQt5DBus.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Widgets.so -> libQt5Widgets.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Widgets.so.5.7 -> libQt5Widgets.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5DBus.so.5.7 -> libQt5DBus.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libicui18n.so.56 -> libicui18n.so.56.1
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5OpenGL.so.5 -> libQt5OpenGL.so.5.7.0
lrwxrwxrwx root/root         0 2017-12-21 22:48 ./usr/lib/libQt5Core.so.5 -> libQt5Core.so.5.7.0

我认为问题可能在于 Ubuntu 在 /usr/lib/x86_64-linux-gnu 中查找之前试图在 /usr/bin 中找到 QT5。所以我的问题是,如何再次使用默认的QT5.5.1版本来实现Ubuntu?我可以配置它还是必须现在总是添加 LD_LIBRARY_PATH?如何卸载 QT5.7 库?只删除上面列出的文件?

Qtcreator 和 rviz 不起作用,因为它们需要来自 /usr/lib/x86_64-linux-gnu 的 qt 库,但需要 links 和 /usr/lib/libQt*(您可以使用 ldd $(which qtcreator)ldd $(which rviz))。这个烂摊子确实和你的相机包安装有很大关系

我发现解决这个问题的方法很少:

1. 看起来你的 linker 优先于 /usr/lib 而不是 /usr/lib/x86_64-linux-gnu。检查你的 LD_LIBRARY_PATH:

echo $LD_LIBRARY_PATH

如果它包含 /usr/lib - 尝试摆脱它(你必须跟踪你更新 LD_LIBRARY_PATH 的位置 - 它是在 .bashrc 还是其他地方?也许 /etc/ld.so.conf.d?)

2..bashrc 中设置 LD_LIBRARY_PATH 以指向有效的 qt 目录。记住不要覆盖变量,而是扩展它(把它放在 ~/.bashrc 的末尾):

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH

然后重新载入 .bashrc:

. ~/.bashrc

在您的实验中,您在启动 qtcreatorrviz 时进行了覆盖,因此这两个应用程序中只有一个在运行,具体取决于您设置的 LD_LIBRARY_PATH

或者,您可以在 /etc/ld.so.conf.d/ 中添加 /usr/lib/x86_64-linux-gnu/ 路径 - 只需使用 qt 路径创建一个新的 .conf 文件并使用

重新加载所有内容
sudo ldconfig

使用此方法 可能 破坏您的相机包,因为从现在开始它将 link 使用新路径中的库。

3. 暂时将相机包 (/usr/lib/libQt*) 提供的 Qt 库移动到另一个位置,并检查 spinview 是否适用于 5.7 以外的其他版本的 qt。如果是 - 你可以自由地从 /usr/lib/ 中删除 qt5.7 库,因为它们不需要 - 这里不需要复杂的卸载过程。无论如何,你总是可以用你的相机 .deb 包恢复它。

我有一个类似的问题,最终由 运行ning "LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ qtcreator" 而不是 "qtcreator" 解决了。所以首先谢谢你的回答

我采取的一些步骤来更深入地理解问题:

  • 通过运行ning "ldd -v /usr/local/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5"检查哪些库链接到qtcreator("required by"错误信息中指定的libQt5Widgets.so.5的绝对路径)
  • 通过运行宁"sudo find / -name libQt5Widgets.so*"找出系统中安装了哪些版本。事实证明,我安装了三个版本(5.5.1、5.7.1 和 5.11.1)。目前,qtcreator 使用的是 5.7.1 版本(比较 ldd 的结果和 find 的结果)
  • 通常,建议将 qt5-default 与 qtcreator 一起安装(均使用 sudo apt install)。 运行 "dpkg -s qt5-default" 表明它的版本是 5.5.1。所以 qtcreator 很可能需要 5.5.1 库版本(尽管我希望它也适用于更高版本)。
  • 通过环境变量 LD_LIBRARY_PATH 指定路径使 qtcreator 使用 5.5.1 库,即 运行 "LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ qtcreator"

我刚刚解决了这个问题。试试这个:

gedit ~/.bashrc

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

保存文件。那么,

source ~/.bashrc

QtCreator 自带所有支持库,例如,

$QTDIR/Tools/QtCreator/lib/Qt/lib/libQt5XcbQpa.so.5.15.2

其中 QTDIR 指向您的 QT 安装。所以你可以这样做:

LD_LIBRARY_PATH=$QTDIR/Tools/QtCreator/lib/Qt/lib $QTDIR/Tools/QtCreator/bin/qtcreator

或添加到 LD_LIBRARY_PATH 的各种方法。