linux cpp标准库,标准库以及标准头文件

本文介绍了源文件如何通过编译生成目标文件,并进一步打包成静态链接库的过程。此外还详细解释了头文件的作用及常见C语言标准库的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源文件通过编译可以生成目标文件(例如 GCC 下的 .o 和 Visual Studio 下的 .obj),并提供一个头文件向外暴露接口,除了保护版权,还可以将散乱的文件打包,便于发布和使用。

实际上我们一般不直接向用户提供目标文件,而是将多个相关的目标文件打包成一个静态链接库(Static Link Library),例如 Linux 下的 .a 和 Windows 下的 .lib。

打包静态库的过程很容易理解,就是将多个目标文件捆绑在一起形成一个新的文件,然后再加上一些索引,方便链接器找到,这和压缩文件的过程非常类似。

C语言在发布的时候已经将标准库打包到了静态库,并提供了相应的头文件,例如 stdio.h、stdlib.h、string.h 等。

Linux 一般将静态库和头文件放在`/lib`和`/user/lib`目录下,C语言标准库的名字是`libc.a`,大家可以通过`locate`命令来查找它的路径:

~~~

$ locate libc.a

/usr/lib/x86_64-redhat-linux6E/lib64/libc.a

$ locate stdio.h

/usr/include/stdio.h

/usr/include/bits/stdio.h

/usr/include/c++/4.8.2/tr1/stdio.h

/usr/lib/x86_64-redhat-linux6E/include/stdio.h

/usr/lib/x86_64-redhat-linux6E/include/bits/stdio.h

~~~

在 Windows 下,标准库由 IDE 携带,如果你使用的是 Visual Studio,那么在安装目录下的`\VC\include`文件夹中会看到很多头文件,包括我们常用的 stdio.h、stdlib.h 等;在`\VC\lib`文件夹中有很多 .lib 文件,这就是链接器要用到的静态库。

大家也可以在当前工程的属性面板(在工程名处单击鼠标右键选择“属性”)中查看路径:

![](https://box.kancloud.cn/d0cf5587297e75e57f45a4e17c8b0a29_722x265.png)

ANSI C 标准共定义了 15 个头文件,称为“C标准库”,所有的编译器都必须支持,如何正确并熟练的使用这些标准库,可以反映出一个程序员的水平:

![](https://box.kancloud.cn/d3cc94499a6da958bd929babd5f50d36_642x75.png)

除了C标准库,编译器一般也会附带自己的库,以增加功能,方便用户开发,争夺市场份额。这些库中的每一个函数都在对应的头文件中声明,可以通过 #include 预处理命令导入,编译时会被合并到当前文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值