qtcreator Qt_5 не найден
Привет у меня проблема с запуском qtcreator
под Ubuntu 16.04. Сообщенная ошибка:
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, я не могу бежать 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-default, но не смог решить мою проблему. Спасибо за помощь.
Изменить: Хорошо, я взял некоторое время и попробовал решение отсюда снова: Ошибка при выполнении - версия `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
что интересно принесло рвизу жить.
Таким образом, кажется, что мои пути перепутаны, вопрос в том, почему и как их исправить (помогает ли перемещать библиотеки 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 пытается найти QT5 в /usr/bin перед тем, как искать в /usr/lib/x86_64-linux-gnu. Итак, мой вопрос, как я могу добиться Ubuntu, используя версию QT5.5.1 по умолчанию снова? Могу ли я настроить его или мне всегда нужно добавлять LD_LIBRARY_PATH? Как я могу удалить библиотеку QT5.7? Просто удалите файлы, перечисленные выше?
4 ответа
Qtcreator и rviz не работают, потому что им нужны Qt-библиотеки из /usr/lib/x86_64-linux-gnu
но ссылки с /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. Установите свой LD_LIBRARY_PATH
в .bashrc
указать действительный QT DIR. Не забудьте не переопределить переменную, а скорее расширить ее (поставить это в конце ~/.bashrc
):
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
затем перезагрузите .bashrc
:
. ~/.bashrc
В своих экспериментах вы сделали переопределение при запуске qtcreator
а также rviz
так что только одно из этих двух приложений работало в зависимости от того, что LD_LIBRARY_PATH
Ты устанавливаешь.
Кроме того, вы можете добавить /usr/lib/x86_64-linux-gnu/
путь в /etc/ld.so.conf.d/
- просто создай новый .conf
файл с путем QT и перезагрузите все с
sudo ldconfig
Использование этого метода может разрушить ваш пакет камер, потому что теперь он будет связываться с библиотеками с вашего нового пути.
3. Временное перемещение библиотек Qt, входящих в комплект камеры (/usr/lib/libQt*
) в другое место и проверьте, если spinview
отлично работает с другой версией Qt, чем 5.7. Если да - вы можете удалить qt5.7 libs из /usr/lib/
поскольку они не нужны - здесь не требуется сложный процесс удаления. Вы всегда можете восстановить его с помощью камеры .deb
Пакет в любом случае.
У меня была похожая проблема, которая в конечном итоге была решена путем запуска "LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ qtcreator" вместо просто "qtcreator". Поэтому прежде всего спасибо за ответ
Некоторые шаги, которые я предпринял, чтобы глубже понять проблему:
- Проверьте, какие библиотеки связаны с qtcreator, запустив "ldd -v /usr/local/Qt/5.7/gcc_64/lib/libQt5Widgets.so.5" (абсолютный путь к libQt5Widgets.so.5, указанный в "required by" сообщение об ошибке)
- Узнайте, какие версии установлены в системе, запустив "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 (даже если бы я ожидал, что она будет работать и с более высокими версиями).
- Заставьте qtcreator использовать библиотеки 5.5.1, указав их путь через переменную среды LD_LIBRARY_PATH, то есть выполните команду "LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ qtcreator"
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