[gull] changer LD_LIBRARY_PATH en cours d'execution

Vuko Brigljevic Vuko.Brigljevic at cern.ch
Thu Oct 23 14:29:01 CEST 2003


Philippe Ney wrote:
> 
> Et en définissant le chemin de manière absolue?
> 
> Si ton repertoire lib/ est au même niveau que l'executable de ton programme,
> tu devrais pouvoir le récupérer avec 'getenv ("PWD");'

Non, mettre le chemin absolu dans LD_LIBRARY_PATH ne resout pas
le probleme; d'ailleurs ca marchait si le chemin etait defini
dans l'environnement avant de demarrer le programme meme de
facon relative. Le probleme est bien que la fonction dlopen
prend la valeur de LD_LIBRARY_PATH au moment ou le programme
demarre et non au moment ou elle est appelee.

Par contre, et pour ceux que ca interesse, j'ai trouve
une solution alternative qui satisfait en tout cas mes
les besoins de mon probleme concret. Je mets la valeur
de ma variable d'environnement LD_LIBRARY_PATH dans un
programme, duquel je demarre un autre avec une des
fonctions exec (execve, execvp,...). Dans ce second programme,
un appel a dlopen trouve la libraire voulue. Et ce qui
etait important pour moi, avec execXX le second programme ne
demarre pas un nouveau proces mais prend la place du premier
dans le meme proces.

Vuko



More information about the gull mailing list