Używałem gcc
w Linuksie od dłuższego czasu, ale wciąż nie znam jego wewnętrznych elementów. Po pierwsze chciałbym wiedzieć, gdzie jest glibc
rezyduje. Po drugie, gdzie są nagłówki. Chcę poznać podstawową strukturę katalogów gcc
.
Odpowiedzi:
2 dla odpowiedzi № 1Pliki nagłówkowe są w /usr/include/
. Aby uzyskać więcej informacji na temat GCC
, możesz przejrzeć gcc.gnu.org. Zawiera wiele informacji na temat GCC, elementów wewnętrznych i sposobu działania.
2 dla odpowiedzi nr 2
Czy wiesz o tym Hierarchia plików systemu plików?
Na przykład, na Linux version 2.6.18-274.3.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-51))
możesz znaleźć glibc
współdzielone obiekty w /usr/lib/gcc
i w /lib
:
zlokalizuj libgcc /lib/libgcc_s-4.1.2-20080825.so.1 /lib/libgcc_s.so.1 // symboliczny link do /usr/lib/gcc/i386-redhat-linux/3.4.6/libgcc.a /usr/lib/gcc/i386-redhat-linux/3.4.6/libgcc_eh.a /usr/lib/gcc/i386-redhat-linux/3.4.6/libgcc_s.so /usr/lib/gcc/i386-redhat-linux/4.1.1/libgcc.a /usr/lib/gcc/i386-redhat-linux/4.1.1/libgcc_eh.a /usr/lib/gcc/i386-redhat-linux/4.1.1/libgcc_s.so ...
Obejmuje znajduje się w /usr/include
:
> zlokalizuj stdio.h /usr/include/stdio.h /usr/include/bits/stdio.h /usr/include/boost/iostreams/filter/stdio.hpp ...
Pliki znajdują się prawie w tych samych katalogach w Linux version 2.6.38-13-generic (buildd@yellow) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) )
(architektura x86_64):
zlokalizuj libgcc /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib/libgccpp.so.1 /usr/lib/libgccpp.so.1.0.2 /usr/lib/ure/lib/libgcc3_uno.so /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/libgcc.a /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/libgcc_eh.a /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/libgcc_s.so /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/libgcc_s_32.so /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/32/libgcc.a /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/32/libgcc_eh.a /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/32/libgcc_s.so /usr/lib32/libgcc_s.so.1 ...
zlokalizuj stdio.h /usr/include/stdio.h /usr/include/bits/stdio.h /usr/include/c++/4.5/tr1/stdio.h ...
1 dla odpowiedzi nr 3
Możesz znaleźć dobrą stronę internetową, aby poznać strukturę katalogów gcc tutaj: Drzewo źródłowe
A jeśli chodzi o nagłówki, możesz tam iść: Nagłówki GCC