Kiedy sprawdzam kod generowany przez gcc -v -o proggy.exe proggy.o, stwierdzam, że linia poleceń rozszerza się do dużej grupy opcji biblioteki i bibliotek, z których wszystkie są połączone za pomocą metody collect2.exe. Co się stało z plikiem ld.exe? Dlaczego tego nie widzę? Czy ktoś może mi wyjaśnić, co robi plik collect2.exe?Co robi plik collect2.exe?
8
A
Odpowiedz
8
collect2
to narzędzie wykorzystywane do generowania tabeli konstruktorów że __main
(funkcja auto-generowany nazywany na początku main
) zależy. Zwykle nie widzisz tego, ponieważ jest on nazwany ld
w systemie plików, a to z kolei wywołuje prawdziwy ld (zwykle zwany real-ld
, chociaż collect2 sprawdzi liczbę miejsc, które go szukają)
4
GCC używa narzędzia o nazwie collect2 na prawie wszystkich systemach, aby wywołać różne funkcje inicjalizacyjne w czasie początkowym. [link]
Powiązane problemy
- 1. co zawiera plik .exe?
- 2. Co robi plik DBContext.Entry?
- 3. Co dokładnie robi plik runtime.Gosched?
- 4. Co właściwie robi plik ____ Pythona?
- 5. Co właściwie robi "__COMPAT_LAYER"?
- 6. Co robi plik README.md w repozytorium git?
- 7. Co to jest plik IOR, co robi i jak działa?
- 8. Co robi kopia hg?
- 9. Co to robi?
- 10. Skompiluj skrypt R w samodzielny plik .exe?
- 11. Jak otworzyć plik .exe z innego pliku C++ .exe?
- 12. Co Boxen i co robi?
- 13. C++ Osadź zewnętrzny plik .exe w moim skompilowanym pliku .exe
- 14. Co robi -n, jeśli [-n "$ {TEMP_FILE_LIST}"] robi?
- 15. Co robi plik ic_launcher-web.png w katalogu głównym projektu?
- 16. Co robi * ~ w pliku .gitignore?
- 17. Co robi opcja tsconfig "lib"?
- 18. co robi instrukcja movsbl?
- 19. Co robi flaga fermeny?
- 20. co właściwie robi -arrayWithArray?
- 21. Co robi leniwy val?
- 22. Co robi pusty wybór?
- 23. Co robi fixIO?
- 24. Co robi kanał ChannelOption.SO_BACKLOG?
- 25. Co robi -XX: MaxPermSize?
- 26. Co robi TransactionScope naprawdę
- 27. Co robi i2c_new_dummy?
- 28. Co robi Keras.io.preprocessing.sequence.pad_sequences?
- 29. Co robi rb-fsevent?
- 30. VB.NET - co robi ": ="?
Pan Mrożek, Dziękuję za odpowiedź. Następne pytanie: Jeśli używam LD.EXE w linii poleceń, co dzieje się z kodem? Załóżmy, że mam plik ld.exe -L/some_lib proggy.o -lsome_lib_lib. Jak to się rozwija? Twoja poprzednia odpowiedź na moje pierwsze pytanie była bardzo pouczająca! Dzięki, Mark – allynm
Warto zauważyć, że nowoczesne systemy ELF nie będą potrzebować tej kolekcji (co oczywiście jest paskudnym hackerem). Korzystają z sekcji lekarzy i lekarzy ELF do konwekcji i destruktorów. –