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版本,安装了以下文件:
- /usr/lib/libQt5Core.so.5.7.0
- /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7
- /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1
是否存在配置问题?有没有办法重新配置路径?
可能也很有趣,就在我不能运行qtcreator的同时,我也不能从ros动能包中运行rviz
。
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默认值,但无法解决我的问题。谢谢你的帮助。
编辑:好的,我花了一些时间,再次尝试了这里的解决方案:执行时出错-版本`Qt_5';未找到所需的并且这部分地解决了问题。有了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库和链接移动到另一个目录有帮助吗)?
(最后要注意的是,如果我不在调用之前添加LIBRARY_PATH,其他ros工具如rqt_console、rqt_plot…也会失败。
第三版:所以我想我发现了更多的内在。我有一台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库,而是与/usr/lib/libQt*
链接(您可以使用ldd $(which qtcreator)
和ldd $(which rviz)
对其进行双重检查)。这种混乱确实与你的相机包安装有很大关系。
我认为有几种方法可以解决这个问题:
1。看起来您的链接器将/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-dir。记住不要覆盖变量,而是扩展它(将其放在~/.bashrc
的末尾):
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
然后重新加载.bashrc
:
. ~/.bashrc
在您的实验中,您在启动qtcreator
和rviz
时进行了覆盖,因此这两个应用程序中只有一个可以工作,这取决于您设置的LD_LIBRARY_PATH
。
或者,您可以在/etc/ld.so.conf.d/
中添加/usr/lib/x86_64-linux-gnu/
路径-只需创建一个具有qt路径的新.conf
文件,并使用重新加载所有内容
sudo ldconfig
使用此方法将很可能破坏您的相机包,因为从现在起,它将与新路径中的库链接。
3。将随照相软件包(/usr/lib/libQt*
)提供的Qt库临时移到另一个位置,并检查spinview
与5.7以外的其他版本的Qt是否正常工作。如果是-您可以自由地从/usr/lib/
中删除qt5.7库,因为它们是不需要的-这里不需要复杂的卸载过程。无论如何,您都可以使用相机.deb
软件包进行恢复。
我也遇到过类似的问题,最终通过运行"LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/qtcreator"而不是"qtcreator"解决了这个问题。所以首先感谢你的回答
我采取了一些步骤来更深入地理解这个问题:
- 通过运行"ldd-v/usr/local/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5"(在"required by"错误消息中指定的libQt5Widets.so.5的绝对路径)来检查哪些库链接到qtcreator
- 通过运行"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指定它们的路径,即运行"LD_LIBRARY_path=/usr/lib/x86_64-linux-gnu/qtcreator",使qtcreator使用5.5.1库
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的各种方法。
我刚刚解决了这个问题。试试这个:
gedit ~/.bashrc
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
保存文件。然后,
source ~/.bashrc