当前位置:  开发笔记 > 运维 > 正文

C标准库的位置

如何解决《C标准库的位置》经验,为你挑选了3个好方法。

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

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



1> Chris Eberle..:

一些东西:

gcc和glibc是两回事.gcc是编译器,glibc是运行时库.几乎所有东西都需要glibc才能运行.

.a文件是静态库,.so意味着共享对象,并且是Linux的等效DLL

大多数事情都不与libc.a链接,它们链接libc.so

希望能为你解决这个问题.至于位置,它几乎肯定会在/usr/lib/libc.a和/或/usr/lib/libc.so.就像我说的,.so更常见.


libc.so和libc.a都提供相同的功能.不同之处在于,如果您链​​接到libc.so,每当libc.so升级时,您的程序都可以获得升级的好处,而无需进行任何更改.但是,如果您链​​接到libc.a,所有功能都打包到您的程序中.libc的新更新不会更新您的程序,因此必须重新编译.
所以是的,.so是动态链接的,而.a是静态链接的.

2> rscohn2..:

如果您正在寻找libc.a:

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



3> phoxis..:

如果您使用的是基于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系统将无法运行.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有