2010-12-08 7 views
1

Хорошо, я добавил некоторые функции в библиотеку linux.Как заставить ссылку на linux libgpod и rhythmbox

Однако даже после «make install» программа, которую я пытаюсь подтвердить, связана с предыдущей версией.

Так 'сделать установку' помещает свои библиотеки здесь: '/ USR/местные/Библиотека' и '/ USR/местные/включить'

Я использовал следующие по настройке: ./configure - -enable-maintainer-mode --enable-uninstalled-build 'CFLAGS = -g -O0' 'CXXFLAGS = -g -O0' 'JFLAGS = -g -O0' 'FFLAGS = -g -O0' CPPFLAGS = '- L/USR/местные/Библиотека/-I /usr/local/include/gpod-1.0/»

Но когда я пытаюсь запустить программу, я получаю„Символ не найден“и„Плагин не может загрузить“

Когда я LDD произведенную плагин так: ~/Разработка/Rhythmbox/плагины/IPOD/.libs $ LDD libipod.so

Linux-gate.so.1 => (0x00d97000)

librhythmbox-ядра .so.1 => /home/gary/Development/rhythmbox/shell/.libs/librhythmbox core.so.1 (0x009ad000)

libgpod.so.4 => /usr/lib/libgpod.so. 4 (0x00509000)

Акцент подчеркивается, потому что он явно связан с неправильной библиотекой ... Когда я смотрю в файле make, я вижу, что e следующее:

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/включают в себя/ГДК-pixbuf-2,0 -I/USR/включать/libpng12

IPOD_LIBS = -pthread -L/USR/местные/Библиотека -lgpod -lgdk_pixbuf-2,0 -lm -lgobject-2,0--lgmodule 2,0 -lpng12 - lgthread-2,0 -lrt -lglib-2,0

Так CPPFLAGS в настоящее время передаются через плагин, а в .deps я вижу правильный файл заголовка включаются ... IE:

~/Разработка/Rhythmbox /plugins/ipod/.deps$ меньше rb-ipod-source.Po | Grep gpod

/usr/local/include/gpod-1.0/gpod/itdb.h ../../lib/eel-gconf-extensions.h

/USR/местные/включить/gpod- 1,0/gpod/itdb.h:

Ubuntu 10,10

Любые идеи?

+0

Установлен ли `libgpod.so.4` в`/usr/local/lib`? Если это так, содержимое `$ LD_RUN_PATH`,` $ LD_LIBRARY_PATH`, `/ etc/ld.so.conf`? – ephemient 2010-12-08 20:01:36

+0

ld.so.conf = include /etc/ld.so.conf.d/*.conf Другие 2 переменные пусты ... libgpod.so.4 существует на/usr/local/lib Похоже, что он находит старую версию ... – Gary 2010-12-08 20:06:50

ответ

1

Перед запуском configure и make Вам необходимо установить LD_RUN_PATH на номер /usr/local/lib. Это вложит /usr/local/lib в качестве пути поиска совместно используемой библиотеки в исполняемый файл.

0

libgpod.so указывает на старую версию библиотеки.