Quando esamino il codice generato da gcc -v -o proggy.exe proggy.o trovo che la riga di comando si espanda in un grande mucchio di librerie e librerie, tutte collegate tramite collect2.exe. Cos'è successo a ld.exe? Perché non lo vedo? Qualcuno può spiegarmi cosa fa collect2.exe?Che cosa fa collect2.exe?
8
A
risposta
8
collect2
è un'utilità utilizzata per generare una tabella di costruttori che __main
(una funzione generata automaticamente chiamata all'inizio di main
) dipende da. Normalmente non si vede perché è chiamato ld
sul file system, ed è a sua volta chiama il vero ld (tipicamente chiamato real-ld
, anche se collect2 controllerà un numero di posti in cerca di esso)
4
GCC utilizza un'utility chiamata collect2 su quasi tutti i sistemi per organizzare chiamate alle varie funzioni di inizializzazione all'avvio. [link]
Problemi correlati
- 1. Che cosa fa APIENTRY?
- 2. Che cosa fa MailMessage.IsBodyHtml?
- 3. Che cosa fa MaxDegreeOfParallelism?
- 4. Che cosa fa api.imply?
- 5. Che cosa fa EventEmitter.call()?
- 6. Che cosa fa @sign?
- 7. DefaultMemberAttribute - che cosa fa?
- 8. Che cosa fa webform_DoPostBackWithOptions()?
- 9. Che cosa fa esattamente l'operatore ==?
- 10. Cosa succede quando l'utente fa clic su .NET assembly (EXE)?
- 11. Che cosa fa esattamente @synthesize?
- 12. Che cosa fa esattamente Numpy.exp()?
- 13. Che cosa fa * in CSS?
- 14. Proprietà TComboBox.AutoCloseUp: che cosa fa?
- 15. Che cosa fa ReDim Preserve?
- 16. Che cosa fa fillMode esattamente?
- 17. Che cosa fa Rails.application.eager_load! fare?
- 18. Che cosa fa "printf -v"?
- 19. Che cosa fa GenerateEmailConfirmationToken() esattamente?
- 20. Che cosa fa% {} in Ruby?
- 21. Che cosa fa esattamente org.apache.commons.lang.builder.CompareToBuilder?
- 22. Che cosa fa android: isScrollContainer?
- 23. Che cosa fa esattamente pg_escape_string?
- 24. Che cosa fa getContentPane() esattamente?
- 25. Che cosa fa loadHTMLString: baseURL:
- 26. PhoneGap setKeepCallback - Che cosa fa?
- 27. Che cosa fa esattamente OwinBrowser?
- 28. Cosa significa "collect2: error: ld restituito 1 exit status"?
- 29. Cosa fa effettivamente "__COMPAT_LAYER"?
- 30. Che cosa fa triggerAction ExtJS ComboBox: "all" fa davvero?
Mr. Mrozek, Grazie per la risposta. Domanda successiva: se utilizzo LD.EXE sulla riga di comando, cosa succede al codice? Supponiamo di avere ld.exe -L/some_lib proggy.o -lsome_lib_lib. Come si amplia questo? La tua precedente risposta alla mia domanda iniziale è stata molto illuminante! Grazie, Mark – allynm
Vale la pena notare che i moderni sistemi ELF non avranno bisogno di quella raccolta (che ovviamente è un brutto hackeraggio). Usano le sezioni dei medici e dei datori di ELF per il controllo e i distruttori. –