我在Linux上使用gcc
很长时间了,但我仍然不知道它的内部结构。首先,我想知道glibc
所在的位置。其次,标题在哪里。我想知道gcc
的基本目录结构。
答案 0 :(得分:2)
标头文件位于/usr/include/
。有关GCC
的详细信息,您可能需要查看gcc.gnu.org。它有很多关于GCC,内部以及它如何工作的信息。
答案 1 :(得分:2)
您知道Filesystem Hierarchy Standard吗?
例如,在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))
上,您可以在glibc
和/usr/lib/gcc
中找到/lib
个共享对象:
locate libgcc /lib/libgcc_s-4.1.2-20080825.so.1 /lib/libgcc_s.so.1 // symbolic link to /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 ...
包含位于/usr/include
:
>locate stdio.h /usr/include/stdio.h /usr/include/bits/stdio.h /usr/include/boost/iostreams/filter/stdio.hpp ...
这些文件几乎位于Linux version 2.6.38-13-generic (buildd@yellow) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) )
(x86_64架构)中的相同目录中:
locate 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 ...
locate stdio.h /usr/include/stdio.h /usr/include/bits/stdio.h /usr/include/c++/4.5/tr1/stdio.h ...
答案 2 :(得分:1)
你可以在这里找到一个很好的网站来了解gcc的目录结构:Source Tree
关于标题,你可以去那里:Headers GCC