在gcc手册中给出了“C标准库本身 存储在'/usr/lib/libc.a'中。“我安装了gcc,但在上述位置找不到libc.a。很想知道它位于何处。
我在/ usr / lib位置找到很多.so文件。那是什么?
答案 0 :(得分:23)
一些事情:
.a
文件是静态库,.so
表示共享对象,是Linux的等效DLL 希望能为你清除它。至于位置,它几乎肯定会在/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 glibc
和rpm -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
软件包。