Ok, ich habe einige Funktionen zu einer Linux-Bibliothek hinzugefügt.Wie erzwingen Verknüpfung auf Linux libgpod und rhythmbox
Aber selbst nach 'make install' versucht das Programm, die Funktionalität zu bestätigen, mit der vorherigen Version zu verknüpfen.
So setzt 'make install' meine Bibliotheken hier: '/ usr/local/lib' und '/ usr/local/include'
Ich habe folgende auf configure: configure - -enable-maintainer-mode --enable-deinstalliert-build 'CFLAGS = -g -O0' 'CXXFLAGS = -g -O0' 'JFLAGS = -g -OO' 'FFLAGS = -g -O0' CPPFLAGS = '- L/usr/local/lib/-I /usr/local/include/gpod-1.0/‘
Aber wenn ich versuche, das Programm, das ich bekommen auszuführen 'Symbol nicht gefunden' und 'Plugin laden kann nicht'
Wenn ich ldd das produzierte Plugin so: ~/Entwicklung/rhythmbox/plugins/iPod/.libs $ ldd libipod.so
linux-gate.so.1 => (0x00d97000)
librhythmbox-Kern .so.1 => /home/gary/Development/rhythmbox/shell/.libs/librhythmbox core.so.1 (0x009ad000)
libgpod.so.4 => /usr/lib/libgpod.so. 4 (0x00509000)
Der Schwerpunkt wird betont, weil es offensichtlich auf die falsche Bibliothek verweist ... Wenn ich in die Make-Datei schaue, sehe ich th Folgendes:
IPOD_CFLAGS = -pthread -I/usr/lokal/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 -Im -lgobject-2.0 -lgmodule-2.0 -lpng12 - lgthread-2.0 -lrt -lglib-2.0
So ist die CPPFLAGS durch an das Plugin übergeben werden, und in .deps sehe ich die richtige Header-Datei enthalten ist ... IE:
~/Entwicklung/rhythmbox /plugins/ipod/.deps$ weniger rb-ipod-source.Po | grep 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
Irgendwelche Ideen?
Ist 'libgpod.so.4' in'/usr/local/lib' installiert? Wenn ja, Inhalt von $ LD_RUN_PATH, $ LD_LIBRARY_PATH,/etc/ld.so.conf? – ephemient
ld.so.conf = include /etc/ld.so.conf.d/*.conf Andere 2 Variablen sind leer ... libgpod.so.4 existiert auf/usr/local/lib Es sieht so aus als würde es die alte Version finden ... – Gary
In der Zwischenzeit habe ich mein Installationsverzeichnis in der Bibliothek geändert, um die Produktionsversion zu überschreiben ... Hoffentlich das funktioniert. – Gary