欢迎光临散文网 会员登陆 & 注册

《七》makefile静态库的生成和使用

2023-03-26 11:05 作者:GXTon_阿通  | 我要投稿

工程结构

其中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 选项.


运行:


《七》makefile静态库的生成和使用的评论 (共 条)

分享到微博请遵守国家法律