gcc
i ld
zapewniają wiele sposobów określania ścieżki wyszukiwania bibliotek - między innymi flagi -rpath
i -L
. Strony podręcznika nie ujawniają różnic między tymi dwiema flagami, co oznacza, że każda flaga dodaje bibliotekę do ścieżki wyszukiwania biblioteki. Jednak wydaje się dziwne, że obie flagi robią dokładnie to samo. Jakie są różnice, jeśli w ogóle, między tymi dwoma opcjami?
gcc
linker
shared-libraries
ld
Craig M. Brandenburg
źródło
źródło
-rpath-link
?Odpowiedzi:
Musisz czytać niektóre przestarzałe kopie stron podręcznika (podkreślenie dodane):
vs.
-L
Mówi więc,ld
gdzie szukać bibliotek, z którymi ma się łączyć podczas łączenia. Używasz tego (na przykład), gdy tworzysz dla bibliotek w swoim drzewie kompilacji, które zostaną umieszczone w normalnych ścieżkach bibliotek systemowych przezmake install
.--rpath
z drugiej strony przechowuje tę ścieżkę w pliku wykonywalnym, tak aby dynamiczny konsolidator środowiska wykonawczego mógł znaleźć biblioteki. Używa się tego, gdy biblioteki znajdują się poza ścieżką wyszukiwania bibliotek systemowych.źródło
-rpath=/some/weird/path
,-L /some/weird/path
też potrzebuje . 2. Przygcc
jednej potrzebie użycia-Wl,-rpath=dir
.