gcc
et ld
offrent de nombreuses façons de spécifier un chemin de recherche pour les bibliothèques, parmi lesquelles les indicateurs -rpath
et -L
. Les pages de manuel ne révèlent aucune différence entre ces deux indicateurs, indiquant en fait que chaque indicateur ajoute une bibliothèque au chemin de recherche de la bibliothèque. Pourtant, il semble étrange que les deux drapeaux fassent exactement la même chose. Quelles sont les différences, le cas échéant, entre ces deux options?
gcc
linker
shared-libraries
ld
Craig M. Brandenburg
la source
la source
-rpath-link
?Réponses:
Vous devez lire des copies obsolètes des pages de manuel (emphase ajoutée):
contre.
Ainsi,
-L
indiqueld
où chercher les bibliothèques à lier lors de la liaison. Vous utilisez ceci (par exemple) lorsque vous construisez sur des bibliothèques dans votre arborescence de construction, qui seront placées dans les chemins normaux des bibliothèques système parmake install
.--rpath
, d'autre part, stocke ce chemin à l'intérieur de l'exécutable, afin que l'éditeur de liens dynamique d'exécution puisse trouver les bibliothèques. Vous l'utilisez lorsque vos bibliothèques se trouvent en dehors du chemin de recherche de la bibliothèque système.la source
-rpath=/some/weird/path
, on a besoin-L /some/weird/path
aussi. 2. Avecgcc
un besoin d'utilisation-Wl,-rpath=dir
.