说一下基础知识 | 每日一练(127)

读者:我不断得到库函数未定义错误, 但是我已经 #inlude 了所有用到

的头文件了,请问该怎么解决?

小林:通常, 头文件只包含外部说明。某些情况下, 特别是如果是非标准函数, 当你连接程序时, 需要指定正确的函数库以得到函数的定义。#include 头文件并不能给出定义。

读者:虽然我在连接时明确地指定了正确的函数库,为什么 我还是得到库函数未定义错误?

小林:许多连接器只对对象文件和函数库进行一次扫描, 同时从函数库中提取适合当前未定义函数的模块。所以函数库和对象文件 (以及对象文件之间) 的连接顺序很重要; 通常, 你希望最后搜索函数库。例如, 在 Unix 系统中, 把 -l 参数放在命令行的后部。

正文完