Когда я исследую код, сгенерированный gcc-v-o proggy.exe proggy.o, я нахожу, что командная строка расширяется в большой набор опций библиотеки и библиотек, все из которых связаны с помощью collect2.exe. Что произошло с ld.exe? Почему я не вижу это? Кто-то может объяснить мне, что делает collect2.exe?
collect2
- это утилита, используемая для создания таблицы конструкторов, от которых зависит __main
(автоматически генерируемая функция, вызываемая в начале main
). Обычно вы ее не видите, потому что она называется ld
в файловой системе, а она, в свою очередь, вызывает настоящий ld (обычно называемый real-ld
, хотя collect2 будет искать его в разных местах)
GCC использует утилиту под названием collect2 почти на всех системах для организации вызова различных функций инициализации во время запуска. [link]