Libxcb xinerama so 0 невозможно открыть разделяемый объектный файл нет такого файла или каталога

Обновлено: 02.07.2024

1) Клонировал официальный инструментарий из малины pi github . Установите переменную окружения arm-linux-gnueabihf-c++ (в .bashrc ).

2) Набрал эту команду для генерации двоичного кода для архитектуры ARM:

3) Теперь двоичный код успешно сгенерирован. Я попытался запустить двоичный код с помощью команд ниже, но ему не повезло.

Я даже установил переменную окружения в файл .bashrc , но не повезло.

Он дает следующие ошибки соответственно:

Я уверен, что файл libfoo.so находится на правильном пути, но он не может его найти. Вот структура каталогов:

2 ответа

Если вы на самом деле используете LD_LIBRARY_PATH , вы должны проверить, что вы построили test против libfoo.so , а не что-то еще. Выполнить

и проверьте имя библиотеки, которую ожидает ваша программа. Скорее всего, это соответствует его SONAME, который вы можете найти с помощью

SONAME обычно немного отличается, например. libfoo.so.0 , и переименование (или символическая привязка) вашей библиотеки к этому имени поможет.

Изменить

Так как приведенное выше, похоже, не помогает, вот еще одна вещь, которую я хотел бы попробовать. Добавьте полный путь, содержащий libfoo.so в /etc/ld.so.conf , Затем запустите

Проверьте вывод для строк, относящихся к libfoo.so , возможно, будет что-то полезное.

В качестве альтернативы попробуйте скопировать libfoo.so в одно из стандартных мест размещения библиотек, например /usr/local/lib , и снова запустите sudo ldconfig -v .

Используется ли libfoo как библиотека библиотеки ARM (или) x86. Вы можете проверить и подтвердить это с помощью служебной программы файла

Приведенная выше команда должна предоставить архитектуру как ARM, если вы видите ее как i386 (или) i686, тогда библиотека скомпилирована для архитектуры x86, которая не может использоваться на Pi. Сначала вам нужно скомпилировать библиотеку, используя одну и ту же самую cross toolchain, а затем использовать ее для ссылки на тестовое приложение.

программа является частью набора тестов Xenomai, скомпилированного из Linux PC в Linux + Xenomai ARM toolchain.

Edit: хорошо ,я не заметил.1 в конце было частью имени файла. Что это вообще значит?

Ну, это не вранье - нет libpthread_rt.so.1 в этот список. Вероятно, вам нужно повторно настроить и перестроить его, чтобы он зависел от библиотеки, которую вы имеете, или установить все, что предоставляет libpthread_rt.so.1 .

в твоем случае, ты может уйти с symlinking libpthread_rt.so.1 до libpthread_rt.so . Однако нет гарантий, что он не нарушит ваш код и не съест ваши телевизионные обеды.

ваша библиотека динамическая библиотека. Вам нужно сообщить операционной системе, где она может найти его во время выполнения.

для этого, нам нужно будет сделать эти простые шаги:

(1 ) Найдите, где находится библиотека, Если вы ее не знаете.

(2) Проверьте наличие переменной среды пути динамической библиотеки ( LD_LIBRARY_PATH )

если нет ничего, чтобы отображаться, добавьте значение пути по умолчанию (или нет, если вы хотите to)

(3) мы добавляем путь желания, экспортируем его и пробуем приложение.

обратите внимание, что путь должен быть каталог, где path.so.something есть. Так что если path.so.something находится в /my_library/path.so.something должно быть :

вот несколько решений, которые вы можете попробовать:

ldconfig

как отметил AbiusX: если вы только что установили библиотеку, вам может просто понадобиться запустить ldconfig.

ldconfig создает необходимые ссылки и кэш к самым последним общие библиотеки, найденные в каталогах, указанных в команде строка, в файле / etc / ld.Итак.conf и в доверенных каталогах (/lib и / usr / lib).

обычно ваш менеджер пакетов позаботится об этом при установке новой библиотеки, но не всегда, и не помешает запустить ldconfig, даже если это не ваша проблема.

пакет Dev или неправильная версия

если это не сработает, я бы также проверить предложение Павла и найдите версию библиотеки" - dev". Многие библиотеки разделены на пакеты dev и non-dev. Вы можете использовать эту команду для поиска это:

это также может помочь, если у вас просто неправильная версия библиотеки установлены. Некоторые библиотеки публикуются в разных версиях одновременно, например, Python.

Я написал приложение для linux, которое использует Qt5.

Но когда я пытаюсь запустить его на linux без установленного Qt SDK, вывод в консоли выглядит следующим образом:

Не удалось загрузить плагин платформы "xcb". Доступные платформы:

Не удалось загрузить плагин платформы "xcb". Доступные платформы:

xcb

Как это могло случиться? Как плагин платформы может быть доступен, но не может быть загружен?

Я пытаюсь развернуть приложение Qt5 для Linux (Debian) с динамическим связыванием. Мое приложение хорошо работает на Ubuntu, где все зависимости работают хорошо. Мой пакет приложений выглядит следующим образом: - application.exe - qt.conf - libicudata.so.54 - libicui18n.so.54 - libicuuc.so.54 -.

Предварительно скомпилированный Qt 5.3.1 с динамическими библиотеками, MinGW 32, Windows 8.1 x64 Развернутое приложение не может запуститься на другом компьютере, что приводит к ошибке: Не удалось найти или загрузить плагин платформы Qt windows

Используете LDD (человек лдд), чтобы показать общий зависимостей библиотеки. Запускаем это на libqxcb.so

показывает, что xcb зависит от libQt5DBus.so.5 в дополнение к libQt5Core.so.5 и libQt5Gui.so.5 (и многим другим системным библиотекам). Добавьте libQt5DBus.so.5 в свою коллекцию общих библиотек, и вы должны быть готовы двигаться дальше.

Как было опубликовано ранее, вам необходимо убедиться, что вы устанавливаете Плагины платформы при развертывании приложения. В зависимости от того, как вы хотите развернуть вещи, есть два способа сообщить вашему приложению, где находятся Плагины платформы (например, platforms/plugins/libqxcb.so) во время выполнения, которые могут работать для вас.

Первый-экспортировать путь к каталогу через переменную QT_QPA_PLATFORM_PLUGIN_PATH.

Другой вариант, который я предпочитаю, - это создать файл qt.conf в том же каталоге, что и ваш исполняемый файл. Содержание которого было бы:

Более подробную информацию об этом можно найти здесь и на сайте using qt.conf

Я попытался запустить свой двоичный файл, скомпилированный с Qt 5.7 , на Ubuntu 16.04 LTS, где предустановлен Qt 5.5 . Это не сработало.

Сначала я проверил сам двоичный файл с ldd , как было предложено здесь, и "satisfied" все зависимости "not found". Затем была выброшена эта пресловутая ошибка This application failed to start because it could not find or load the Qt platform plugin "xcb" .

Как решить эту проблему в Linux

Затем вы можете запустить свой двоичный файл с переменной окружения QT_DEBUG_PLUGINS=1 , чтобы проверить, какие зависимости libqxcb.so не являются "satisfied". (вы также можете использовать для этого ldd , как это предлагается в принятом ответе).

Вывод команды может выглядеть следующим образом:

Обратите внимание на неудачную библиотеку libQt5DBus.so.5 . Скопируйте его в путь к вашим библиотекам, в моем случае это был тот же каталог, где находится мой двоичный файл (следовательно, LD_LIBRARY_PATH=. ). повторяйте этот процесс до тех пор, пока все зависимости не будут удовлетворены.

P.S. спасибо автору этого ответа за QT_DEBUG_PLUGINS=1 .

Ubuntu 16.04 64 бит. Я получил эту проблему, по-видимому, без всяких причин. Накануне вечером я смотрел фильм на своем экземпляре VideoLan, в тот вечер я хотел бы посмотреть еще один с VideoLan. VLC просто не хотел запускаться из-за ошибки в вопросе. Я немного погуглил и нашел решение, которое решило мою проблему: отныне VLC работает так же, как и раньше. Решение этой команды:

sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/

Я не в состоянии объяснить, каковы его последствия, но я знаю, что он создает какую-то недостающую символическую связь.

Я попробовал основные части каждого ответа, но безрезультатно. Что в конце концов исправило это для меня, так это экспорт следующих переменных окружения:

Начиная с версии 5, Qt использует систему абстракции платформы (QPA) для абстрагирования от базовой платформы.

Реализация для каждой платформы обеспечивается плагинами. Для X11 это плагин XCB. Дополнительные сведения о зависимостях см. В разделе Qt для X11 требований .

Возможно, это поможет. Я использую Ubuntu 18.04 и когда я установил Krita , используя метод ppa. Я получил эту ошибку:

Это приложение не удалось запустить, потому что оно не смогло найти или загрузить плагин платформы Qt "xcb" в "".

Доступные плагины платформы: linuxfb, minimal, minimalegl, offscreen, wayland-egl, wayland, xcb.

Переустановка приложения может устранить эту проблему. Прервана

Я перепробовал все решения, которые нашел в этой теме и других сетях, но безуспешно.

Наконец, я нашел пост, где автор упоминает, что можно активировать отладочную версию qt5 с помощью этой простой команды:

После добавления этой команды я снова запускаю krita и получаю ту же ошибку, что и всегда, теперь я знаю причину.

libxcb-xinerama.so.0: невозможно открыть разделяемый объектный файл: нет такого файла или каталога.

Эта ошибка мешает "xcb" правильно загрузиться. Таким образом, решение будет заключаться в установке "libxcb-xinerama.so.0"", верно? Однако, когда я запускаю команду:

Я либерал был установлен. Так что я использовал старый трюк да --reinstall

Эта последняя команда решила мою проблему.

У этой проблемы может быть много причин. Ключ в том, чтобы использовать

перед запуском приложения Qt. Затем проверьте выходные данные, которые укажут вам направление ошибки. В моем случае так оно и было:

Я столкнулся с той же проблемой, когда после установки Viber. Все это требовало qt библиотек в /opt/viber/plugins/ . Я проверил зависимости /opt/viber/plugins/platforms/libqxcb.so и нашел отсутствующие зависимости. Они были libxcb-render.so.0 , libxcb-image.so.0 , libxcb-icccm.so.4 , libxcb-xkb.so.1 , поэтому я решил свою проблему, установив отсутствующие пакеты с помощью этой библиотеки:

apt-get install libxcb-xkb1 libxcb-icccm4 libxcb-image0 libxcb-render-util0

Итак, я потратил около дня, пытаясь выяснить, в чем проблема; перепробовал все предложенные решения, но ни одно из них не сработало так, как установка XCB libs или экспорт папки Qt plugins. Решение, которое предлагало использовать QT_DEBUG_PLUGINS=1 для отладки проблемы, не давало мне прямого понимания, как в ответе, - вместо этого я получал что-то о неразрешенных символах внутри Qt5Core.

Однако это дало мне подсказку: что, если он пытается использовать разные файлы из разных установок Qt? На моей машине у меня была стандартная версия, установленная в /home/username/Qt/ , и некоторые локальные сборки в моем проекте, которые я скомпилировал сам (у меня есть и другие пользовательские наборы в других местах). Всякий раз, когда я пытался использовать любой из комплектов (установленный Qt maintenance tool или построенный сам), я получал "xcb error".

Решение было простым: обеспечить путь Qt через CMAKE_PREFIX_PATH , а не через Qt5_DIR , как это сделал я, и это решило проблему. Пример:

и снова запустите приложение. Для меня это открыло следующее:

"Cannot загрузить библиотеку /home/. /miniconda3/lib/python3.7/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libxkbcommon-x11.so.0: невозможно открыть разделяемый объектный файл: нет такого файла или каталога)"

"Cannot загрузить библиотеку /home/. /miniconda3/lib/python3.7/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libxkbcommon-x11.so.0: невозможно открыть разделяемый объектный файл: нет такого файла или каталога)"

Действительно, мне не хватало libxkbcommon-x11.so.0 и libxkbcommon-x11.so.0. Затем проверьте свою архитектуру с помощью dpkg из командной строки linux. (Для меня команда "arch" дала другой и бесполезный результат)

sudo apt-get обновление

sudo apt-get установить libxkbcommon0

sudo apt-get установить libxkbcommon-x11-0

В моем случае мне нужно было развернуть два приложения Qt на госте Ubuntu virtualbox. Один был командной строкой ("app"), другой-GUI_based ("app_GUI").

Я использовал "ldd app", чтобы узнать, что такое требуемые библиотеки, и скопировал их в Ubuntu guest. В то время как исполняемый файл командной строки "app" работал нормально, исполняемый файл на основе GUI разбился, выдав ошибку "не удалось загрузить платформенный плагин "xcb"". Я проверил ldd на libxcb.so, но у этого тоже не было отсутствующих зависимостей.

Проблема, по-видимому, заключалась в том, что, копируя все нужные библиотеки, я случайно скопировал также библиотеки, которые уже присутствовали в гостевой системе.. это означает, что (а) они были ненужны для их копирования в первую очередь и (б) хуже того, копирование их приводило к несовместимости между установочными библиотеками. Хуже того, как я уже сказал, Они были незаметны для лдд..

Решение? Убедитесь, что вы копируете библиотеки, показанные как отсутствующие в ldd, и абсолютно никаких дополнительных библиотек .

Мне нравится решение с qt.conf .

Поместите qt.conf рядом с исполняемым файлом со следующими строками:

И это работает как заклинание: ^)

Для рабочего примера:

Я статически связываю все Qt материала с общими сборками Linux моих проектов с открытым исходным кодом. Это немного облегчает жизнь. Вам просто нужно сначала создать статические версии библиотек Qt. Конечно, это не может быть применено к программному обеспечению с закрытым исходным кодом из-за проблем с лицензированием. deployment из Qt5 приложений на Linux в настоящее время немного проблематично, потому что Ubuntu 12.04, например, не имеет библиотек Qt5 в репозиториях пакетов.

У меня была эта проблема, и по наитию я удалил конфигурации Qt из своей среды. I.e.,

Затем я запустил qtcreator, и он перенастроился с существующим состоянием машины. Он больше не помнил, где были мои проекты, но это просто означало, что я должен был снова просмотреть их "for the first time".

Но что еще более важно, он построил себе согласованный набор библиотечных путей, так что я мог перестроить и запустить свои исполняемые файлы проекта снова, не пропуская библиотеки xcb или qxcb.

sudo ln -sf /usr/lib/. "adapt-it". /qt5/plugins/platforms/ /usr/bin/

Он создает символическую связь, которую упустил. Хорошо для QT ! Хорошо для VLC !!

Похожие вопросы:

Я создал проект Qt, используя Visual studio 2012 32 бит и Qt5 SDK с помощью аддона Visual studio Qt. Я использую Windows 7 ultimate OS. Я создал проект QApplication GUI, который в основном.

Я пытаюсь развернуть приложение Qt5 для Linux (Debian) с динамическим связыванием. Мое приложение хорошо работает на Ubuntu, где все зависимости работают хорошо. Мой пакет приложений выглядит.

Предварительно скомпилированный Qt 5.3.1 с динамическими библиотеками, MinGW 32, Windows 8.1 x64 Развернутое приложение не может запуститься на другом компьютере, что приводит к ошибке: Не удалось.

В моей ОС (Linux Mint Debian Edition 2), за исключением системы python( /usr/bin/python ), установленной apt , я также установил anaconda . Но я столкнулся с проблемой запуска следующего кода с.

До тех пор, пока Anaconda3 (который содержит Python 3.4 ) не был повторно установлен на моей рабочей станции RedHat 6.5 , я мог разрабатывать Python приложения, которые используют PyQT5 . После.

Я переустановил свои ubuntu 14.04 и Qt 5.4.1 и Qtcreator. Qt 5.4.1 был построен из исходного кода с настройками- opensource-nomake-test-nomake-example. Когда я открываю старый проект в QtCreator и.

Я пытался установить QT-everywhere 5.15 open-source по академическим причинам, но мне не удалось запустить программу. Во-первых, я скомпилировал необходимые исходные файлы с помощью make и установил.

Последние несколько дней я сталкиваюсь с особой проблемой. Вот подробности.

case 2), когда я запускаю его, используя только ключевое слово sqlplus

Cloudformation будет предоставлять экземпляр сначала после запуска, а затем только, я могу войти в экземпляр. Теперь, когда я вхожу в экземпляр, команда sqlplus отлично работает без каких-либо проблем.

Когда я повторяю переменные среды и т.д., Я получаю правильные выходные данные. я тоже получаю все в нужном месте. Во время подготовки я создал несколько пользователей, и они могут без проблем получить доступ к sqlplus.

Ниже я пытаюсь установить oracle xe, потому что у меня было подобное требование.

a) Загрузите Oracle 11.2 XE для Linux 64 в ваш $ HOME

б) Разархивируйте почтовый файл, который вы получаете

c) Распакуйте содержимое файла rpm без его установки (нам не нужно, чтобы RDBMS Oracle работала на сервере), а затем

Я знаю, что проблема довольно распространена, но я не нахожу выхода.

Ниже приведен вывод ldconfig -p (если требуется, но он не содержит libsqlplus.so)

Если у вас есть родительский скрипт, который вызывает (но не использует) два дочерних скрипта, любые изменения среды, сделанные первым дочерним скриптом, не влияют на родителя или другого ребенка.

В качестве простого примера предположим, что у вас есть сценарий install.sh который содержит:

где install_oraclexe.sh содержит команды, показанные на шаге c, включая поиск сценария среды ./etc/profile.d/oracle.sh ./etc/profile.d/oracle.sh ; и create_schema.sh выполняет SQL * Plus.

Внутри install_oraclexe.sh изменяется среда и доступны PATH, LD_LIBRARY_PATH и т.д. И имеют значения, которые позволят вам запустить SQL * Plus позже в том же дочернем скрипте. Но эти изменения окружения видны только для этого скрипта. Когда он выходит и управление переходит к родительскому скрипту, его окружение не тронуто, и он ничего не знает о том, что сделал ребенок. Когда он create_schema.sh скрипт create_schema.sh он по-прежнему не имеет параметров среды Oracle-specfic, поэтому у второго дочернего скрипта тоже нет.

Вы можете либо переместить (или скопировать) исходную команду для изменений среды в родительский скрипт:

Или, возможно, более аккуратно добавьте его в скрипт create_schema.sh :

Предположительно, поскольку вы только устанавливаете клиента, который вы подключаетесь к удаленной БД, и уже используете подходящую строку соединения, вам не нужно export ORACLE_SID=.

Не очень актуально, но извлечение файлов с помощью установщика XE-клиента кажется немного странным; Вместо этого я хотел бы использовать простой в установке Oracle Instant Client. Это похоже на тот тип сценария распространения, который он разработал.

при запуске тупо черный экран, нажмешь на какуюнибудь кнопку он зкрывается. WTF ?



Хмм? Ничего не понял.

какой вайн? какая видеокарта? заходил на appdb?


c вайном разобрался, теперь почему то не ставиться directX,заверщается с ошибкой


Силой мысли кастую телепатов. Говори ошибку, пока они не пришли.

>почему то


ошибку не говорит, говорит глянуть в логи щас их напастебин залью и выложу



а 2 второй не выкладывается



Установи mpg123 || lib32-mpg123 (второе в случае если у тебя amd64). DX нужно ставить winetricks`ами. Если точнее, то


все равно выводит что нет директа.

я повторю свой вопрос насчёт версии вайна и версии дров. И очень похоже, что последние не установлены. Если после установки дров запустится, но будет тормозить, надо поставить opengl в качестве рендерера. как это делается найди на соответствующей странице winehq


дрова ставил из репозитория или руками? Давно обновлялся? Если обновил ведро, то поставь дрова заново и расскажи о результатах. Дистрибутив, кстати, какой?(рудиментарная экстрасенсорика подсказывает, что убунта)


арч, обновлялся сегодня дрова ставил тоже.


ставил из репов. // заметил особенность если сделать kdesu dolphin и попробывать установить директ не через вайнтрик то он ставиться, хотя вроде даже после этого его игры не видят.


Потому что директх ставится в /root/.wine. Нужно ставить его из под юзера.

Читайте также: