Jakie są opcje linii poleceń --start-group i -- end-group?

Jaki jest cel tych opcji wiersza poleceń? Proszę o pomoc w rozszyfrowaniu znaczenia następującego wiersza poleceń:

-Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib

Najwyraźniej ma to coś wspólnego z linkowaniem, ale instrukcja GNU jest cicha, co dokładnie oznacza grupowanie.

Author: jww, 2011-04-13

1 answers

Służy do rozwiązywania kolistych zależności pomiędzy kilkoma bibliotekami (wymienionymi pomiędzy -( i -)).

Cytowanie dlaczego kolejność w jakiej biblioteki są połączone czasami powoduje błędy w GCC? lub man ld http://linux.die.net/man/1/ld

-( archiwum -) lub --start-group archiwum --end-group

Archiwum powinno być listą plików archiwalnych. Mogą być albo jawnymi nazwami plików, albo -l opcje.

Podane archiwa są przeszukiwane wielokrotnie, dopóki nie zostaną utworzone żadne nowe, nieokreślone odwołania. Zwykle archiwum jest przeszukiwane tylko raz w kolejności określonej w wierszu poleceń. Jeśli symbol w tym archiwum jest potrzebny do rozwiązania niezdefiniowanego symbolu, do którego odnosi się obiekt w archiwum, który pojawia się później w wierszu poleceń, linker nie będzie w stanie rozwiązać tego odniesienia. Grupując archiwa, wszystkie będą przeszukiwane wielokrotnie, aż wszystkie możliwe referencje są rozwiązane.

Korzystanie z tej opcji wiąże się ze znacznym kosztem wydajności. Najlepiej jest używać go tylko wtedy, gdy między dwoma lub więcej archiwami istnieją nieuniknione odniesienia okrągłe.

Tak więc biblioteki wewnątrz grupy mogą być przeszukiwane pod kątem nowych symboli kilka razy, i nie potrzebujesz brzydkich konstrukcji, takich jak -llib1 -llib2 -llib1

Archiwum PS oznacza w zasadzie bibliotekę statyczną (*.a Pliki)

 74
Author: osgx,
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
2017-05-23 12:10:48