2015-10-11 1 views
2

Dans la compilation et la liaison C et C++ code, quel est le but de LTDL_LIBRARY_PATH et LD_LIBRARY_PATH variables d'environnement? De plus, quelle est la différence entre eux?Quelle est la différence entre LTDL_LIBRARY_PATH et LD_LIBRARY_PATH?

Merci

+1

Ces tags n'ont rien à voir avec votre question. Je pense que seul * glibc * se soucie de 'LD_LIBRARY_PATH' un programme [tag: c] ou [tag: C++] ne s'en soucierait que s'il le fait explicitement. –

+0

@ iharob En fait, je crois que les programmes C et C++ utilisent LD_LIBRARY_PATH lors de la recherche de bibliothèques partagées, y compris la bibliothèque standard C++ sous Linux. –

+0

Non c et C++ le runtime fait. –

Répondre

4

LTDL_LIBRARY_PATH définit un chemin de recherche de la bibliothèque pour la libtool library, une bibliothèque d'aide/portabilité pour l'utilisation des bibliothèques partagées. Cette bibliothèque va rechercher les répertoires dans ce chemin avant de rechercher LD_LIBRARY_PATH qui est une variable d'environnement qui définit un chemin de recherche pour le chargeur de bibliothèque partagée du système.

De l'libtool documentation:

Si libltdl ne peut pas trouver la bibliothèque et le nom du fichier du nom de fichier n'a pas une composante de répertoire, il regardera plus dans les chemins de recherche suivants pour le module (dans l'ordre suivant):

  • chemin de recherche défini par l'utilisateur: Ce chemin de recherche peut être modifié par le programme en utilisant les fonctions lt_dlsetsearchpath, lt_dladdsearchdir et lt_dlinsertsearchdir. Le chemin de recherche de ce chemin de recherche est la valeur de la variable d'environnement LTDL_LIBRARY_PATH.
  • chemin de recherche bibliothèque système
  • : Le chemin de recherche de la bibliothèque dépendante du système (par exemple sur GNU/Linux est LD_LIBRARY_PATH)

Comme mentionné ci-dessus, LD_LIBRARY_PATH is an environment variable that the system will use pour rechercher des bibliothèques partagées.