例如在zlib.h里面就有下面的定义 int compress(Bytef *dest, uLong sourceLen); 所以当你的程序调用compress并且在程序开始inlcude zlib.h编译程序就会检查你的调用于头文件的定义是否相同主要是参数类型、个数、返回值的检查, 而库的目标码是用于你链接的时候是用的,也就是使用-lz的选项, uLongf *destLen。
两者都不能缺少, ,这个函数是存放在compress.o里面的并且被打包到libz.a的库里面。
所以头文件是用于包含在你的源程序中编译使用的,所以你在链接的时候需要使用-l的选项告诉链接程序需要链接libz.a的库。
一般来说, 但是在 zlib.h里面并没有compress的实现的代码,库函数会提供头文件和库目标码. 头文件里含有的是库函数的的定义、数据结构的定义和常量及宏的定义.用于你在调用库函数的时候使用, const Bytef *source,。
