PDA

View Full Version : [C/Linux] impostazione di LD_LIBRARY_PATH per l'esecuzione


virusso80
06-08-2010, 10:58
Ciao a tutti.
Mi sto scontrando con un problema ma nn riesco a venirne fuori. POtreste darmi qualche dritta?

la situazioen è la seguente: ho un progetto C, compilato su macchina linux, che funziona.

Ora devo eseguire il programma su un'altra macchina. Per evitare problemi di librerie etc, devo copiare "fisicamente" le librerie richieste (individuate con ldd programma) in locale e il porgramma deve usare quelle, non quelle di sistema.

Credo devo impostare la variabile LD_LIBRARY_PATH al percordo con le librerie (appena copiate)

Quindi ho creato un file "start_programma" fatto così:

#!/bin/sh
export LD_LIBRARY_PATH=../useful_libs:$LD_LIBRARY_PATH
./programma


l'albero delle directory è il seguente:
start - useful_libs
|- cartella - programma

il problema è che mi dà il seguente errore...ma non capisco che significhi:
./start_programma: line 3: 2479 Segmentation fault (core dumped) ./programma

Mi suggerite come fare?

grazie anticipatamente

cionci
06-08-2010, 11:18
Prova così:

export LD_LIBRARY_PATH="../useful_libs:$LD_LIBRARY_PATH"

virusso80
06-08-2010, 11:19
Prova così:

export LD_LIBRARY_PATH="../useful_libs:$LD_LIBRARY_PATH"

stesso errore :(

Ho provato anche a metter eil full path...ma niente!

virusso80
06-08-2010, 11:38
Mi chiedevo se fosse necessario compilare anche con le librerie in locale.

come si scrive nel makefile?
export LD_,....?

grazie mille :)

cionci
06-08-2010, 11:47
Comunque non torna che ti vada in segmentation fault. Ti dovrebbe dire che non può caricare una libreria.

Se lanci l'eseguibile da solo cosa ti dice ?

virusso80
06-08-2010, 11:58
Comunque non torna che ti vada in segmentation fault. Ti dovrebbe dire che non può caricare una libreria.

Se lanci l'eseguibile da solo cosa ti dice ?

che non trova la libreria...nel mio caso era una libssl

cionci
06-08-2010, 12:06
che non trova la libreria...nel mio caso era una libssl
Allora significa che LD_LIBRARY_PATH funziona. Evidentemente o c'è una incompatibilità con la libreria o un problema nell'eseguibile.