Dla wygody dodałem odpowiednie strony poniżej.
Moje (błędne) zrozumienie jako pierwsze: jeśli muszę oddzielić opcje ,
, oznacza to, że druga -Wl
nie jest inną opcją, ponieważ występuje przed nią, ,
co oznacza, że jest argumentem dla -rpath
opcji.
Nie rozumiem, jak -rpath
można się -Wl,.
kłócić!
Co miałoby sens w moim umyśle to:
-Wl,-rpath .
Powinno to wywołać opcję -rpath linker z argumentem bieżącego katalogu.
man gcc:
-Wl, opcja
Przekaż opcję jako opcję do linkera. Jeśli opcja zawiera przecinki, jest dzielona na wiele opcji w przecinkach. Możesz użyć tej składni, aby przekazać argument do opcji. Na przykład
-Wl,-Map,output.map
przechodzi-Map output.map
do linkera. Korzystając z GNU linkera, możesz również uzyskać ten sam efekt dzięki `-Wl, -Map = output.map '.
człowiek ld:
-rpath = reż
Dodaj katalog do ścieżki wyszukiwania biblioteki środowiska wykonawczego. Służy to do łączenia pliku wykonywalnego ELF z obiektami współdzielonymi. Wszystkie argumenty -rpath są łączone i przekazywane do łącznika środowiska wykonawczego, który używa ich do lokalizowania obiektów współdzielonych w czasie wykonywania. Opcja -rpath jest także używana podczas lokalizowania obiektów współdzielonych, które są wymagane przez obiekty współdzielone jawnie zawarte w łączu;