《七》makefile静态库的生成和使用
工程结构

其中include里面有helloworld.h文件


这里为了演示静态库,
工程很简单,就是主函数调用helloworld的库,输出一句 "hello world" .
通常情况下库的都包含两部分,一部分是通过.c文件编译生成的库,另一部分是库对应的.h文件.
这个.h文件就是库的对外接口,里面有库的函数,通过调用库的.h里面的函数,就能够实现库的所有功能.
main.c文件
helloworld.c文件
helloworld.h文件:
makefile文件(只有一个顶层makefile)
上面的makefile中
生成静态库的语法:ar -r library_a.a helloworld.o
还有一个问题.gcc 调用过程中,用到了CFLAGS变量.
如果没有CFLAGS变量,就会导致:
main.o 目标文件被正确的生成,但在连接时找不到my_printf() 函数。由于 my_printf()函数的实现是放在 helloworld.a 库中的,而我们又没有告诉编译器,在连接时应当到 helloworld.a中找所需的函数。所以需要用到 gcc的-l(小写的 L)和-L 选项.

运行:
