Je suis en train de construire un simple programme en C++ et je veux remplacer temporairement un système livré bibliothèque partagée avec une version plus récente, de développement et de test.
J'ai essayé le réglage de la variable LD_LIBRARY_PATH mais l'éditeur de liens (ld) a échoué avec:
/usr/bin/ld: ne peut trouver -lyaml-rpc
Je m'attendais à ce travail, car, selon la ld page de man:
L'éditeur de liens utilise la recherche suivante les chemins de localiser partagés requis bibliothèques: ... Pour un natif de l'éditeur de liens, le contenu de la variable d'environnement "LD_LIBRARY_PATH"...
J'ai ensuite essayé le réglage de la LIBRARY_PATH, et que travaillé.
Selon le manuel de GCC:
La valeur de LIBRARY_PATH est un, séparés par deux points de la liste de répertoires, comme dans beaucoup de CHEMIN. Lorsque configuré comme un compilateur natif, GCC essaie les répertoires ainsi spécifié lors de la recherche pour l'éditeur de liens spéciaux fichiers, s'il ne peut pas les trouver à l'aide de GCC_EXEC_PREFIX. Réticulation à l'aide de GCC utilise également ces répertoires lors de l' la recherche pour le commun des bibliothèques pour l'option-l (mais répertoires spécifiée avec -L viennent en premier).
Comme l' (GCC) manuel suggère, LIBRARY_PATH fonctionne parce que j'en lien avec GCC.
Mais..
- Depuis que j'ai un lien avec gcc ld est pourquoi d'être appelé, comme le message d'erreur suggère?
- Quel est le point de ayant deux variables qui servent le même le but? Existe-il d'autres les différences?