C标准库的位置

时间:2011-05-08 04:51:45

标签: c gcc

在gcc手册中给出了“C标准库本身 存储在'/usr/lib/libc.a'中。“我安装了gcc,但在上述位置找不到libc.a。很想知道它位于何处。

我在/ usr / lib位置找到很多.so文件。那是什么?

5 个答案:

答案 0 :(得分:23)

一些事情:

  • gcc和glibc是两回事。 gcc是编译器,glibc是运行时库。几乎所有东西都需要glibc来运行。
  • .a文件是静态库,.so表示共享对象,是Linux的等效DLL
  • 大多数事情都没有链接到libc.a,它们链接到libc.so

希望能为你清除它。至于位置,它几乎肯定会在/usr/lib/libc.a和/或/usr/lib/libc.so。就像我说的,.so更常见。

答案 1 :(得分:19)

如果您正在寻找libc.a

$ gcc --print-file-name=libc.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libc.a

答案 2 :(得分:5)

如果您使用基于RPM的Linux(Red Hat / CentOS / Fedora / SUSE),那么您将获得已安装的glibc的位置 rpm -ql glibcrpm -ql glibc-devel

locate libc.a会找到你的位置。并从它的位置看: rpm -qf /usr/lib/libc.a

以下是rpm -qi必须告知的有关这些软件包的内容

的glibc-devel的:

  

glibc-devel包中包含必要的目标文件   用于开发使用标准C库的程序(它们是   几乎所有程序都使用过)。如果你正在开发哪些程序   将使用标准C库,您的系统需要具备这些   标准对象文件可用于创建   可执行文件。   如果要开发将要开发的程序,请安装glibc-devel   使用标准C库

的glibc:

  

glibc包中包含的标准库   系统上有多个程序。为了节省磁盘空间和   内存,以及使升级更容易,常见的系统代码是   保存在一个地方并在程序之间共享。这个特别的包   包含最重要的共享库集:标准C   库和标准数学库。没有这两个库,a   Linux系统无法运行。

答案 3 :(得分:3)

您需要单独安装静态库的包: 的glibc-static.i686

答案 4 :(得分:2)

关于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软件包。