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 glibcrpm -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