C标准库的位置
在gcc手册中,给出了“C标准库本身存储在’/usr/lib/libc.a’中”。 我安装了gcc,但在上述位置找不到libc.a. 很想知道它的位置。
我在/ usr / lib位置找到了很多.so文件。 那些是什么?
一些东西:
- gcc和glibc是两回事。 gcc是编译器,glibc是运行时库。 几乎所有东西都需要glibc才能运行。
-
.a
文件是静态库,.so
表示共享对象,是Linux的等效DLL - 大多数事情都没有链接到libc.a,它们链接libc.so
希望能为你清理它。 至于位置,它几乎肯定会在/usr/lib/libc.a
和/或/usr/lib/libc.so
。 就像我说的那样.so更常见。
如果您正在寻找libc.a
:
$ gcc --print-file-name=libc.a /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libc.a
如果您使用的是Linux(rpm),那么您将获得已安装的glibc的位置,其中包含rpm -ql glibc
和rpm -ql glibc-devel
。
locate libc.a
会找到你的位置。 并从它的位置看: rpm -qf /usr/lib/libc.a
这是rpm -qi
必须告诉我们这些包的内容
的glibc-devel的:
glibc-devel包中包含开发使用标准C库(几乎所有程序都使用)的程序所需的目标文件。 如果您正在开发将使用标准C库的程序,则系统需要提供这些标准目标文件才能创建可执行文件。 如果要开发将使用标准C库的程序,请安装glibc-devel
glibc的:
glibc包中包含标准库,这些库由系统上的多个程序使用。 为了节省磁盘空间和内存,以及使升级更容易,通用系统代码保存在一个位置并在程序之间共享。 这个特定的包包含最重要的共享库集:标准C库和标准数学库。 没有这两个库,Linux系统将无法运行。
在centos 5.8
$ ls -l /usr/lib/libc.a -rw-r--r-- 1 root root 2442786 Apr 8 2010 /usr/lib/libc.a $ rpm -qf /usr/lib/libc.a glibc-devel-2.3.4-2.43.el4_8.3
您还必须在RedHat发行版下安装glibc-devel
软件包。
您需要单独安装静态库的包:glibc-static.i686