Skip to content

FAQ

区别 /lib 和 /usr/lib

其实就是主要为了好管理:

  • /lib contain "essential" libraries that may be needed even in single-user (admin-only) mode and without /usr mounted
  • /usr/lib are the libraries for the normal user-programs, that mostly can be found under /usr

根据 diff 命令: /lib/libc.so.6 和 /usr/lib/libc.so.6 是一样的东西。在我的机器上, 其实 /lib 就是 /usr/lib 的软链接

区别:glibc 和 libc 和 glib

可以理解为 libc 是刚开始那个最基础的库,glibc 是它的改编,但是 glibc 逐渐取代了它。
而 glib 就是和这两个完全没有关系的东西,相当于是在其基础之上的工具库。

为什么要有 COMMON 块

首先很明显就是 COMMON 块的作用是什么?就是为了能够在多个文件中可以定义相同的变量名称。
a.c 中有int demo,b.c 中也可以定义int demo。

为什么要支持这种奇怪的方式,可能是历史原因(比如不然 b.c 中要使用extern int demo,多个 extern 太麻烦)

而且现在 GCC 也提供了选择,你可以取消这个 COMMON 机制,也就是说 demo 这个变量只能在 a.c 中定义。

参考

Comments