在Linux下使用gcc
时,不需要添加命令行选项来使用printf
等标准库函数。在 GCC简介一书中,它解释了“C标准库本身存储在'/usr/lib/libc.a'中,并包含指定的函数。
ANSI / ISO C标准,例如'printf' - 默认情况下,每个C程序都链接此库。“
但是必须在命令行中添加-lm
才能使用math.h
中声明的标准库函数,因为默认情况下libm.a
没有链接。
因此libc.a
中包含哪些标准库函数,因此不需要链接其他库文件。除了libm.a
之外,是否还有其他标准库函数需要显式添加要链接的库文件,以及库的文件名是什么?
答案 0 :(得分:2)
libc
和libm
都处理所有ANSI / ISO函数。除此之外,Linux和UNIX系统遵循POSIX,其中包括libpthread
(通常使用-pthread
选项链接,未在库中显式链接),以及可能包含的libiconv
在libc
。 POSIX中的其他库包括curses
和libutil
用于其他功能。