链接分为静态链接和动态链接。
如果对函数库的链接放在编译时期完成的是静态链接。所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件。程序运行时,与函数库无关
,因为所有需要的函数已经复制到相关位置,这样的函数库称为静态库。(形式:libXXXXX.a)
使用文章《makefile基础学习》编译生成的目标文件hello1.o hello2.o。
http://blog.csdn.net/zhouzhenhe2008/article/details/55117592
静态库由.o文件生成。
使用命令:
ar cr libmyhello.a hello1.o hello2.o
生成 libmyhello.a ,如下图所示。静态库为.a文件,以lib开头,但引用时不需要加上lib和.a。
ar 命令 r 参数在库中插入模块或者替换,c 参数创建一个库,不管库是否存在都会创建。
引用格式 :-l + 库名
如 -lmyhello
ar tv libxxxx.a 显示静态库中有哪些目标文件、文件名、时间、大小等
在程序中使用静态库:
gcc -o main hello_main.c -L. -lmyhello
其中,-L. 是在当前目录查找静态库。