come forzare il collegamento su linux libgpod e Rhythmbox
-
10-10-2019 - |
Domanda
Ok, ho aggiunto alcune funzionalità a una libreria Linux.
Tuttavia, anche dopo 'make install' il programma che sto cercando di funzionalità conferma è il collegamento alla versione precedente.
'make install' mette qui le mie librerie: '/ Usr / local / lib' e '/ Usr / local / include'
ho usato il seguente su di configurazione: ./configure-maintainer-mode --enable --enable-disinstallato-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 /'
Ma quando provo ad eseguire il programma ottengo 'simbolo non trovato' e 'plugin non può caricare'
Quando ho LDD il prodotto plugin in modo: ~ / Sviluppo / 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)
L'enfasi di essere sottolineato perché è, ovviamente, che collega alla libreria sbagliato ... Quando guardo nel file make vedo il seguente:
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
Così i CPPFLAGS vengono passati attraverso il plugin, e in .deps vedo il file di intestazione corretta essere inclusi ... IE:
~ / Sviluppo / rhythmbox / plugins / ipod / .deps $ meno 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
Tutte le idee?
Soluzione
È necessario LD_RUN_PATH
insieme a /usr/local/lib
prima di eseguire configure
e make
. Ciò incorporare /usr/local/lib
come un percorso di ricerca della libreria condivisa in eseguibile.
Altri suggerimenti
libgpod.so
punta alla vecchia versione della libreria.