Come rendere accessibili le librerie personalizzate? [chiuso]

2

Sto cercando di compilare e installare ogni modulo personalizzato sotto la sua cartella designata. (es: /myApps/myLinux/compiled_app )

Ho avuto fortuna con Python fino ad ora, dove il mio Python è compilato da source e vive in: /myApps/myLinux/python2.5 e "python2.5" - > /myApps/myLinux/python2.5.6-gcc463

Quindi posso accedere a questo Python tramite uno script wrapper che imposta l'ambiente giusto.

La domanda è che di recente ho dovuto compilare e aggiungere qualcosa chiamato gperf3.0.4. Quindi ora vive: /myApps/myLinux/gperf3.0 and "gperf3.0" -> /myApps/myLinux/gperf3.0.4-gcc463

La domanda è: come farò riferimento a questa libreria se qualche altra app deve accedervi? È fatto attraverso la variabile LD_LIBRARY_PATH?

    
posta symbolix 03.07.2012 - 23:56
fonte

2 risposte

3

Come sapete, il flag -L sul linker viene utilizzato per specificare un percorso per cercare le librerie (statiche o condivise) al momento link .

Il flag -R al linker può essere utilizzato per incorporare nell'eseguibile un percorso da utilizzare per la ricerca in tempo di esecuzione . Questo è necessario se la libreria condivisa verrà installata in una posizione diversa dal percorso della libreria condivisa di sistema standard.

Per specificare un flag personalizzato da utilizzare in link in gcc, puoi usare -Wl, prefisso. Quindi se colleghi la tua app con:

gcc -L/path/to/lib -Wl,-R/path/to/lib -o myapp myapp.o -lgperf

(O simile) la tua app si collegherà alla versione della tua libreria su quel percorso e cercherà quel percorso per le librerie in fase di esecuzione .

    
risposta data 26.01.2013 - 21:01
fonte
0

Con gcc puoi collegare a una lib in una posizione arbitraria passando il percorso completo al linker come qualsiasi altro oggetto

$ gcc -c somefile.c
$ gcc -c mainfile.c
$ gcc somefile.o mainfile.o /path/to/libsomelib.so
  or
  gcc somefile.o mainfile.o -L/path/to/ -lsomelib
$ LD_LIBRARY_PATH=/path/to/ ./a.out
    
risposta data 27.12.2012 - 00:41
fonte

Leggi altre domande sui tag