Jaka jest różnica między-rpath A-L?

gcc i ld zapewniają wiele sposobów, aby określić ścieżkę wyszukiwania dla bibliotek-wśród nich znaczniki -rpath i -L. Strony podręcznika nie ujawniają różnic między tymi dwoma flagami, skutecznie mówiąc, ż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ą ewentualne różnice między tymi dwoma opcjami?

Author: derobert, 2011-12-12

1 answers

Musisz czytać nieaktualne kopie stron man (podkreślenie dodane):

-rpath=dir
      Dodaj katalog do ścieżki przeszukiwania biblioteki runtime. To jest używane
      podczas łączenia pliku wykonywalnego ELF z obiektami współdzielonymi. All-rpath
      arguments are concatenated and passed to the runtime linker, which
      używa ich do lokalizowania współdzielonych obiektów w środowisku uruchomieniowym .

Vs.

- L searchdir
-- library-path=searchdir
      Dodaj ścieżkę searchdir do listy ścieżek, które ld będzie wyszukiwać
      biblioteki archiwalne i skrypty sterujące ld.

Więc -L mówi ld Gdzie szukać bibliotek do linkowania podczas łączenia. Używasz tego (na przykład) podczas budowania z bibliotekami w drzewie budowania, które zostaną umieszczone w normalnych ścieżkach biblioteki systemowej przez make install. --rpath, z drugiej strony, przechowuje tę ścieżkę wewnątrz wykonywalny, tak aby runtime dynamic linker mógł znaleźć biblioteki. Używasz tego, gdy biblioteki znajdują się poza ścieżką wyszukiwania bibliotek systemowych.

 110
Author: derobert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-12 23:14:28