Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes |
en:documentation:tutorials:build:links [2020/07/09 09:20] – créée fleroux | en:documentation:tutorials:build:links [2020/08/25 15:58] – modification externe 127.0.0.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)// | 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 ====== | ====== Publishing links from a bookstore ====== |
| |
Exemple avec la librairie **HDF5** en version **1.8.9** | Example with the library **HDF5** in version **1.8.9** |
| |
===== Linkage Statique ou Dynamique ===== | ===== Static or Dynamic Linkage ===== |
| |
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 : | In the subdirectory ''lib'' of the installation directory ''/softs/Hdf5/1.8.9/gnu/4.6.3'', the library is available statically and dynamically. : |
| |
<code> | <code> |
</code> | </code> |
| |
Que ce soit en statique ou en dynamique, pour utiliser cette librairie, à l'édition de liens (étape de compilation), il faut rajouter : | Whether static or dynamic, to use this library, when editing links (compilation step), you have to add : |
<code> | <code> |
-L/softs/Hdf5/1.8.9/gnu/4.6.3/lib -lhdf5 | -L/softs/Hdf5/1.8.9/gnu/4.6.3/lib -lhdf5 |
</code> | </code> |
| |
===== Utilisation de la version dynamique ===== | ===== Using the dynamic version ===== |
| |
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 : | By default, it is the dynamic version that is first searched for when editing links. In this case, at program execution (e.g. on nodes), the variable ''LD_LIBRARY_PATH'' should contain the path of the dynamic library. To do this, add this line in the execution script : |
| |
* Pour csh (et tcsh) : | * For csh (and tcsh) : |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
* Pour sh (et bash) : | * For sh (and bash) : |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
===== Utilisation de la version statique ===== | ===== Using the static version ===== |
| |
Pour linker avec la version statique, il faut utiliser l'option ''-static''. Exemple : | To link with the static version, use the ''-static'' option. Example : |
| |
<code> | <code> |
</code> | </code> |
| |
===== Remarques ===== | ===== Remarks ===== |
| |
==== -static ==== | ==== -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 : | Using the ''-static'' option implies to link all libraries statically. For only the desired library (here libhdf5) to be linked statically, use the full name of the library : |
| |
<code> | <code> |
</code> | </code> |
| |
==== Disponibilité ==== | ==== Availability ==== |
| |
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''). | The above discussion arises only if both versions (static and dynamic) are installed (as for HDF5). If for another library only one of the versions (static or dynamic) is installed, just add ''-L/répertoire_de_recherche -lnom_librairie'' to link with ''libnom_librairie.a'' (or ''libnom_librairie.so''). |
| |
| |