Невозможно запустить Code :: Blocks: libwx_gtk2u-2.8.so.0 не найден - PullRequest
3 голосов
/ 26 августа 2011

Я пытаюсь установить Code :: Blocks 10.05 из (не SVN) источников (codeblocks-10.05-src.tar.bz2). Моя ОС - Ubuntu 11.04. Сначала мне нужно было скачать и установить wxWidgets (теперь у меня есть wxGTK-2.8.12), что, похоже, работает. Я скомпилировал его в соответствии с этими инструкциями:

http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Linux

Затем я настроил C :: B с

./configure --with-wx-config=/opt/wx/2.8/bin/wx-config

и побежал

export LDFLAGS="-Wl,-R /opt/wx/2.8/lib"
make
sudo -i
make install

При попытке запустить C :: B я получаю следующую ошибку:

codeblocks: error while loading shared libraries: libwx_gtk2u-2.8.so.0: cannot open shared object file: No such file or directory

Здесь задавался тот же вопрос: ошибка при загрузке общих библиотек , но предлагаемое решение (а именно добавление конфигурации wxWidgets к опциям, переданным в configure), у меня не сработало.

Выход wx-config --prefix равен /opt/wx/2.8,

Выход wx-config --libs равен -L/opt/wx/2.8/lib -pthread -lwx_gtk2u-2.8,

и which wx-config равно /opt/wx/2.8/bin/wx-config.

Я искал библиотеку и обнаружил, что /opt/wx/lib/libwx_gtk2u-2.8.so.0 является ссылкой на libwx_gtk2u-2.8.so.0.8.0 в той же папке.

Что здесь может быть не так?

Ответы [ 3 ]

2 голосов
/ 30 августа 2011

Проблема в том, что программа не может найти библиотеки виджетов WX при времени выполнения .Вам нужно будет установить переменную LD_LIBRARY_PATH так, чтобы она включала в себя расположение wxWidgets следующим образом:

LD_LIBRARY_PATH=/opt/wx/2.8/lib ./codeblocks

Причина, по которой он не работает, заключается в том, что вы скомпилировали кодовые блоки для wxWidgets, найденных в / opt /, а не для того, который установлен в /USR /;программа не знает, как искать / выбирать библиотеки wx.

1 голос
/ 27 августа 2011

Вероятно, самый простой способ получить code :: blocks и запустить его в Ubuntu - это просто установить его через Synaptic Package Manager. Просто введите кодовые блоки в «Быстрый поиск». Найдите кодовые блоки в списке и просто щелкните правой кнопкой мыши, чтобы отметить установку. Все необходимые зависимости и отсутствующие библиотеки будут автоматически обрабатываться и устанавливаться Synaptic по мере необходимости.

Если вы заинтересованы в ночных сборках C :: B на Ubuntu, тогда вы можете зайти на Неофициальный Debian-репозиторий Jens здесь .

0 голосов
/ 01 октября 2013

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

Если вы установили wxGTK, вы увидите файл в / usr / local / lib .Вы получите эту ошибку, если указанный выше путь не является частью make-файла.Я получил эту ошибку при запуске wxFormBuilder после сборки из источника на CentOS.Существует 2 подхода.

Подход 1: Ввод пути в .bashrc

gedit /home/ndomyour-username отпуска/.bashrc

Затем после строки # Пользовательские псевдонимы и функции вставьте следующее

export $ LD_LIBRARY_PATH = / usr / local / lib.

Это будетработает хорошо, но для текущего входа в систему, но для других пользователей, таких как root, вам, возможно, придется сделать то же самое в соответствующих файлах .bashrc.

Подход 2: Создание собственных файлов conf

кд / etc / ld.so.conf.d

gedit wxformbuilder.conf

Укажите путь / usr / local / lib и сохраните файл.

ldconfig (Чтобы обновить путь к библиотеке).

...