【发布时间】:2014-07-20 14:40:13
【问题描述】:
我是一名普通的 C 程序员,一段时间以来我一直想知道关于 GNU GCC/LD 内部的一些事情。
我注意到,当将一系列目标文件传递给 GCC(例如 gcc main.o otherfile.o)时,GCC 会自动链接 libc.a 库文件,而无需我在选项中明确指定 -lc。同样,当我使用ncurses 编译程序时,我只需要指定-lncurses 和libtinfo.a 会自动链接(无需指定-ltinfo)。换句话说,即使ncurses 函数使用来自libtinfo 的函数(例如unctrl()),我也不需要显式链接libtinfo。
这怎么可能?
GCC/LD 是否有一个“默认库”列表,在链接时它会在其中查找缺失的符号?如果存在这样的表,它在哪里,如何配置?
【问题讨论】:
标签: gcc linker default libraries