c - libc.a 包含哪些标准库函数?

标签 c gcc linker glibc standard-library

在Linux下使用gcc时,无需添加命令行选项即可使用printf等标准库函数。在GCC简介一书中,它解释了“C标准库本身存储在‘/usr/lib/libc.a’中,并包含在 ANSI/ISO C 标准,例如‘printf’——每个 C 程序默认链接该库。”
但是必须在命令行中添加 -lm 才能使用 math.h 中声明的标准库函数,因为 libm.a 不是默认链接。
那么libc.a中包含了哪些标准库函数,因此不需要链接其他库文件。除了libm.a之外,是否还有其他标准库函数需要显式添加要链接的库文件,该库的文件名是什么?

最佳答案

libclibm 都处理所有 ANSI/ISO 函数。除此之外,Linux 和 UNIX 系统遵循 POSIX,其中包括 libpthread(通常使用 -pthread 选项链接,不在库中显式链接)以及 libiconv 可能包含在 libc 中。 POSIX 中的其他库包括用于各种功能的 curseslibutil

关于c - libc.a 包含哪些标准库函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11927459/

相关文章:

c++ - 强制链接未使用的共享库

c - gdb 在 Centos 上找不到调试信息

c - 如何在 C 中的头文件中初始化结构的结构?

c - OpenCV cvFindContours 只查找一个轮廓

c++ - 为什么包裹在函数中的 GAS 内联汇编为调用者生成与纯汇编函数不同的指令

c - 链接库时未定义对全局数组的引用

c++ - 链接 boost 库

c++ - 无法将 wxWidgets 应用程序与 Code::Blocks/MinGW 链接起来

c - 使用 wasmtime 运行 wasm 文件时无法调用函数

c - 排序功能不起作用,模拟无法继续