Zajmuję się wykorzystaniem następujących dwóch plików, którymi są Mcrt1.o i Scrt1.o. Czy ktoś może pomóc mi powiedzieć, do czego służą te dwa pliki. Jak tego użyć? Weźmy na przykład gcrt1.o, który jest całkiem przydatny przy kompilacji z opcją -pg dla testu wydajności. DziękiJakie są zastosowania programów Mcrt1.o i Scrt1.o?
5
A
Odpowiedz
7
Pliki w postaci są niezmiennie kodem uruchomieniowym C runtime (większość środowiska wykonawczego C występuje w bibliotekach, kod startowy jest plikiem obiektowym, ponieważ jest zawsze potrzebny).
Opis różnych typów można znaleźć pod adresem here, skopiowanym poniżej, aby odpowiedź była samodzielna. Pierwsze pewne definicje:
Mini FAQ about the misc libc/gcc crt files.
Some definitions:
PIC - position independent code (-fPIC)
PIE - position independent executable (-fPIE -pie)
crt - C runtime
Następnie różne startowe pliki wynikowe:
crt0.o
Older style of the initial runtime code ? Usually not generated anymore
with Linux toolchains, but often found in bare metal toolchains. Serves
same purpose as crt1.o (see below).
crt1.o
Newer style of the initial runtime code. Contains the _start symbol which
sets up the env with argc/argv/libc _init/libc _fini before jumping to the
libc main. glibc calls this file 'start.S'.
crti.o
Defines the function prolog; _init in the .init section and _fini in the
.fini section. glibc calls this 'initfini.c'.
crtn.o
Defines the function epilog. glibc calls this 'initfini.c'.
Scrt1.o
Used in place of crt1.o when generating PIEs.
gcrt1.o
Used in place of crt1.o when generating code with profiling information.
Compile with -pg. Produces output suitable for the gprof util.
Mcrt1.o
Like gcrt1.o, but is used with the prof utility. glibc installs this as
a dummy file as it's useless on linux systems.
i kilka innych:
crtbegin.o
GCC uses this to find the start of the constructors.
crtbeginS.o
Used in place of crtbegin.o when generating shared objects/PIEs.
crtbeginT.o
Used in place of crtbegin.o when generating static executables.
crtend.o
GCC uses this to find the start of the destructors.
crtendS.o
Used in place of crtend.o when generating shared objects/PIEs.
Wreszcie wspólne zamawianie Łączenie:
General linking order:
crt1.o crti.o crtbegin.o [-L paths] [user objects] [gcc libs]
[C libs] [gcc libs] crtend.o crtn.o
Powiązane problemy
- 1. Jakie są dozwolone zastosowania globalnych haków klawiatury?
- 2. Jakie są typowe zastosowania UDP?
- 3. Jakie są praktyczne zastosowania wzoru metody Factory?
- 4. Jakie są najważniejsze informacje o programowaniu Java?
- 5. Jakie są praktyczne zastosowania XOR w algorytmach
- 6. Jakie są zastosowania podprogramów lwartości w Perlu?
- 7. Jakie są niektóre zastosowania metadanych Clojure?
- 8. Jakie są dobre zastosowania modułów pakowanych OCaml?
- 9. Jakie są zastosowania właściwości Wyrównaj i Zakotwiczenia w TForm?
- 10. Jakie są odpowiednie i nieodpowiednie zastosowania refleksji w Javie?
- 11. pytanie o przełączanie programów cieniujących (ES 2)
- 12. Jakie są praktyczne zastosowania algorytmów najniższego wspólnego przodka?
- 13. Co to są próbki cieni w OpenGL i jakie są możliwe zastosowania dla nich?
- 14. Jakie są powody używania programów wsadowych DOS w systemie Windows?
- 15. Jakie są sposoby decydowania o prawdopodobieństwach w ukrytych modelach Markowa?
- 16. Jakie są znaczenie elementów w komunikacie o błędzie "pułapkę wyrównania"?
- 17. Jakie są konsekwencje wywołania metody write() o zerowej długości?
- 18. Jakie są zastosowania If-None-Match z wieloma podmiotami?
- 19. Haskell - Próba zastosowania funkcji do linii o wielu numerach
- 20. Jakie narzędzia do krojenia programów istnieją?
- 21. Jakie są mniej znane struktury danych i algorytmy, o których należy wiedzieć?
- 22. Android: appCategory w Androidzie O. Jakie wartości?
- 23. ZeroMQ kontra Rozjazdy I/O
- 24. Jakie są zastosowania dla^i jak mogę uzyskać więcej informacji na ten temat?
- 25. Jakie zastosowania mają atrybuty parametrów ogólnych?
- 26. Jakie są różnice między LinFu.DynamicProxy i Castle.DynamicProxy?
- 27. Wątek o dużej wadze i małej wadze
- 28. Informacje o programie telewizyjnym o aktualnych i następnych programach zapytania SQL Zapytanie o numer
- 29. Mapowane na pamięć I/O vs Mapowane na port I/O
- 30. Jakie są dobre zasoby dla GNU Make?
I don nie wiem, w jakim scenariuszu użyjemy Scrt1.oi nstead of crt1.o? – Daniel