Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
en:documentation:tutorials:build:links [2020/07/09 09:20] – créée flerouxen:documentation:tutorials:build:links [2023/12/12 12:59] (Version actuelle) – supprimée ltaulell
Ligne 1: Ligne 1:
-FIXME **Cette page n'est pas encore traduite entièrement. Merci de terminer la traduction**\\ //(supprimez ce paragraphe une fois la traduction terminée)// 
- 
-====== L'édition de liens (linkage) d'une librairie ====== 
- 
-Exemple avec la librairie **HDF5** en version **1.8.9** 
- 
-===== Linkage Statique ou Dynamique ===== 
- 
-Dans le sous-répertoire ''lib'' du répertoire d'installation ''/softs/Hdf5/1.8.9/gnu/4.6.3'', la librairie est disponible en statique et dynamique : 
- 
-<code> 
-ls /softs/Hdf5/1.8.9/gnu/4.6.3/lib 
-libhdf5.a 
-libhdf5.so 
-... 
-</code> 
- 
-Que ce soit en statique ou en dynamique, pour utiliser cette librairie, à l'édition de liens (étape de compilation), il faut rajouter : 
-<code> 
- -L/softs/Hdf5/1.8.9/gnu/4.6.3/lib -lhdf5  
-</code> 
- 
-===== 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) : 
- 
-<code bash> 
-setenv LD_LIBRARY_PATH "/softs/Hdf5/1.8.9/gnu/4.6.3/lib:$LD_LIBRARY_PATH" 
-</code> 
- 
-  * Pour sh (et bash) : 
- 
-<code bash> 
-export LD_LIBRARY_PATH="/softs/Hdf5/1.8.9/gnu/4.6.3/lib:$LD_LIBRARY_PATH" 
-</code> 
- 
-===== Utilisation de la version statique ===== 
- 
-Pour linker avec la version statique, il faut utiliser l'option ''-static''. Exemple : 
- 
-<code> 
-gcc ... -static ... -L/softs/Hdf5/1.8.9/gnu/4.6.3/lib -lhdf5 ... 
-</code> 
- 
-===== Remarques ===== 
- 
-==== -static ==== 
-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 : 
- 
-<code> 
-gcc ... -static ... -L/softs/Hdf5/1.8.9/gnu/4.6.3/lib/libhdf5.a ... 
-</code> 
- 
-==== Disponibilité ==== 
- 
-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 l'une des versions (statique ou dynamique) est installée, il suffit de rajouter ''-L/répertoire_de_recherche -lnom_librairie'' pour linker avec ''libnom_librairie.a'' (ou ''libnom_librairie.so''). 
- 
  
en/documentation/tutorials/build/links.1594286400.txt.gz · Dernière modification : 2020/08/25 15:58 (modification externe)