Він призначений для вирішення кругових залежностей між кількома бібліотеками (переліченими між -(
та -)
).
Цитування Чому порядок зв’язку бібліотек іноді спричиняє помилки в GCC? або man ld
http://linux.die.net/man/1/ld
-(
архіви -)
або --start-group
архіви --end-group
В архівах повинні бути списком архівних файлів. Вони можуть бути як явними іменами файлів, так і параметрами -l.
Зазначені архіви здійснюють повторний пошук, поки не створюються нові невизначені посилання. Зазвичай архів шукається лише один раз у тому порядку, який вказано в командному рядку. Якщо символ у цьому архіві потрібен для розв'язання невизначеного символу, на який посилається об'єкт в архіві, що з'являється пізніше в командному рядку, компонувальник не зможе розпізнати це посилання. Групуючи архіви, їх усі шукають неодноразово, доки не будуть вирішені всі можливі посилання.
Використання цієї опції має значні витрати на продуктивність. Найкраще використовувати його лише тоді, коли між двома або більше архівами є невідворотні кругові посилання.
Отже, бібліотеки всередині групи можна шукати нові символи кілька разів, і вам не потрібні некрасиві конструкції типу -llib1 -llib2 -llib1
Архів PS означає в основному статичну бібліотеку ( *.a
файли)