在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
如果您使用的是基于RPM的Linux(Red Hat/CentOS/Fedora/SUSE),那么您可以使用rpm -ql glibc
和获取已安装的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系统将无法运行.