Ceci est une ancienne révision du document !


FIXME remettre en forme

origin: https://www.psmn.ens-lyon.fr/tikiwiki4/tiki-index.php?page=Dedition%20de%20liens&bl=y

{HTML()} <HR> <center>Pour tout renseignement contacter Hervé Gilquin (Herve.Gilquin@psmn.ens-lyon.fr) ou Cerasela Iliana Calugaru (Cerasela.Iliana.Calugaru@ens-lyon.fr)</center><HR> <P> {HTML}

!!::L'édition des liens (linkage) d'une librairie. Exemple - la librairie HDF5 version 1.8.9 ::

!!!Statique ou dynamique ?

Dans le sous-répertoire ~pp~ lib ~/pp~ du répertoire d'installation ~pp~ /softs/Hdf5/1.8.9/gnu/4.6.3 ~/pp~ on peut voir que la librairie est installée en statique et dynamique :

~pp~ $ ls /softs/Hdf5/1.8.9/gnu/4.6.3/lib libhdf5.a libhdf5.so … ~/pp~

Que se soit en statique ou en dynamique, pour utiliser cette librairie, à l'étape d'édition de liens, en principe il faut rajouter : ~pp~ -L/softs/Hdf5/1.8.9/gnu/4.6.3/lib -lhdf5 ~/pp~

!!!Utilisation de la version dynamique

Par défaut, c'est la version dynamique qui est d'abord cherchée à l'édition de liens. Dans ce cas, à l'exécution du programme (p.ex sur les nœuds), la variable LD_LIBRARY_PATH devra contenir le chemin de la librairie dynamique. Pour cela, rajouter cette ligne dans le script d'exécution :

*Pour csh (et tcsh) :

~pp~ setenv LD_LIBRARY_PATH “/softs/Hdf5/1.8.9/gnu/4.6.3/lib:$LD_LIBRARY_PATH” ~/pp~

*Pour sh (et bash) :

~pp~ export LD_LIBRARY_PATH=/softs/Hdf5/1.8.9/gnu/4.6.3/lib:$LD_LIBRARY_PATH ~/pp~

!!!Utilisation de la version statique

Pour linker avec la version statique utiliser l'option “-static”. Exemple :

~pp~ gcc … -static … -L/softs/Hdf5/1.8.9/gnu/4.6.3/lib -lhdf5 … ~/pp~

!!!!Remarque Utiliser l'option “-static” implique de linker toutes les librairies en statique. Pour que seule la librairie voulue (ici libhdf5) soit liée en statique, utiliser le nom complet de la librairie :

~pp~ gcc … /softs/Hdf5/1.8.9/gnu/4.6.3/lib/libhdf5.a … ~/pp~

!!!Commentaire La discussion ci-dessus se pose seulement si les deux versions (statique et dynamique) sont installées (comme pour HDF5). Si pour une (autre) librairie seule la version statique (ou dynamique) est installée, il suffit de rajouter ~pp~ -L/répertoire_de_recherche -lnom_librairie ~/pp~ pour linker avec libnom_librarie.a (ou libnom_librarie.so)

{HTML()} <p></p> <hr /> <center> <h5>Pôle Scientifique de Modélisation Numérique</h5> </center> <hr /> {HTML}

documentation/tutorials/build/links.1360233250.txt.gz · Dernière modification : 2020/08/25 15:58 (modification externe)