Как привязывать связь с Linux libgpod и Rhythmbox
-
10-10-2019 - |
Вопрос
Хорошо, я добавил некоторые функциональные возможности в библиотеку Linux.
Однако даже после того, как «Сделать установку» программа, которую я пытаюсь подтвердить функциональность, - это ссылка на предыдущую версию.
Итак, 'Make Install' размещает мои библиотеки здесь: '/usr/local/lib' и '/usr/local/include'
Я использовал следующее на Configure: ./configure-enable-maintainer-mode -enable-uninstalled-build 'cflags = -g -o0' 'cxxflags = -g -o0' 'jflags = -g -o0' 'fflags = -g -o0 'cppflags ='-l/usr/local/lib/-i/usr/local/include/gpod-1.0/ ''
Но когда я пытаюсь выполнить программу, я получаю «Символ не найден» и «Плагин не может загрузить»
Когда я буду поддерживать созданный плагин, так: ~/development/rhythmbox/plugins/ipod/.libs $ ldd libipod.so
linux-gate.so.1 => (0x00d97000)
librhythmbox-core.so.1 => /home/gary/development/rhythmbox/shell/.libs/librhythmbox core.so.1 (0x009ad000)
libgpod.so.4 =>/usr/lib/libgpod.so.4 (0x00509000)
Акцент в стрессе, потому что он, очевидно, ссылается на неправильную библиотеку ... Когда я смотрю в файле Make, я вижу следующее:
IPod_cflags = -pthread -i/usr/local/include/gpod -1.0 -i/usr/include/glib -2.0 -i/usr/lib/glib -2.0/include -i/usr/include/gdk -pixbuf -2.0 -I/usr/include/libpng12
Ipod_libs = -pthread -l/usr/local/lib -lgpod -lgdk_pixbuf -2.0 -lm -lgobject -2.0 -lgmodule -2.0 -lpng12 -lgthread-2.0 -lrt -lglib -2.0
Таким образом, CPPFLAGS передаются в плагин, и в .DEPS я вижу, что соответствующий файл заголовка включен ... т.е.
~/Разработка/Rhythmbox/Plugins/iPod/.deps $ меньше rb-ipod-source.po | Греп GPOD
/usr/local/include/gpod-1.0/gpod/itdb.h ../../lib/eel-gconf-extensions.h
/usr/local/include/gpod-1.0/gpod/itdb.h:
Ubuntu 10.10
Любые идеи?
Решение
Вам нужно установить LD_RUN_PATH
к /usr/local/lib
Перед бегом configure
а также make
. Анкет Это будет встроено /usr/local/lib
как общий путь поиска библиотеки в исполняемый файл.
Другие советы
libgpod.so
указывает на старую версию библиотеки.