Когда я просматриваю код, сгенерированный gcc -v -o proggy.exe proggy.o, я обнаружил, что командная строка расширяется в большой набор параметров библиотеки и библиотек, все из которых связаны с помощью collect2.exe. Что случилось с ld.exe? Почему я этого не вижу? Может кто-нибудь объяснить мне, что делает collect2.exe?Что делает collect2.exe?
8
A
ответ
8
collect2
- это утилита, используемая для создания таблицы конструкторов, которая __main
(автогенерированная функция, называемая в начале main
) зависит от. Обычно вы не видите его, потому что он называется ld
в файловой системе, и он в свою очередь вызывает реальный ld (обычно называется real-ld
, хотя collect2 проверяет количество мест, которые его ищут)
4
GCC использует утилиту под названием collect2 почти во всех системах, чтобы организовать вызов различных функций инициализации во время запуска. [link]
Смежные вопросы
- 1. Что делает программа gnuwin32: [.exe do?
- 2. Ошибка компиляции Python.h: collect2.exe Идентификатор возвращен 1 статус выхода
- 3. py2exe не делает exe?
- 4. Makefile gtkmm; collect2.exe: ошибка: ld возвращен 1 статус выхода
- 5. Я использую Dev-C++ и получаю ошибку компилятора, говоря, что «collect2.exe» получает статус 1
- 6. Эта функция делает сбой .exe, что я делаю неправильно?
- 7. что делает logging.basicConfig делает?
- 8. collect2: ошибка в Qt
- 9. Файл PyInstaller .exe ничего не делает
- 10. Что в файле .exe?
- 11. Что такое csc2.exe?
- 12. Что такое расширение .exe ~?
- 13. Что расширяет EXE?
- 14. Что делает «&&»?
- 15. Что делает?
- 16. Что делает `? .`?
- 17. Что делает $()?
- 18. Что именно делает оператор ==?
- 19. делает подписание решения безопасности безопасности EXE
- 20. .exe с использованием py2exe ничего не делает
- 21. Отладка с Nsight делает .exe прекратить работу
- 22. Что делает эту команду сделать
- 23. Что означает «collect2: error: ld return 1 exit status» означает?
- 24. C collect2 Multiple Определение ошибки
- 25. collect2: ошибка: Л.Д. возвращается статус
- 26. mingw, OpenCV 2.4.10 и разработчик eclipse C/C++ collect2.exe: ошибка: ld возвращен 1 статус выхода
- 27. неопределенная ссылка на `WinMain @ 16' collect2.exe: ошибка: л.д. возвращается 1 выход статус
- 28. collect2.exe: ошибка: л.д. возвращается статус 1 выхода при компиляции C++ код с Gradle 2.3
- 29. Windows EXE/DLL: что такое «упакованное изображение»
- 30. Что делает проект ASP.NET приложением или библиотекой?
Mr. Mrozek, Спасибо за ваш ответ. Следующий вопрос: если я использую LD.EXE в командной строке, что происходит с кодом? Предположим, что у меня есть ld.exe -L/some_lib proggy.o -lsome_lib_lib. Как это расширяется? Ваш предыдущий ответ на мой первоначальный вопрос был очень полезным! Спасибо, Mark – allynm
Стоит отметить, что современные системы ELF не нуждаются в этой коллекции (что, конечно же, является неприятным взломом). Они используют секции ctors и dtors ELF для кон- деструкторов. –