静态库.a的生成和使用

生成.a静态库并使用

参考:https://www.jb51.net/article/225428.htm

    1. 什么是静态库

我们通常需要把一些公用函数制作成函数库,供其它程序使用,函数库分为静态库.a和动态库.so两种。

静态库在程序编译时会被链接到目标代码中,程序运行时不再需要该静态库。

动态库在程序编译时并不会被链接到目标代码中,而是在程序运行时才被载入。这样我们可以通过更改动态库,动态的改变程序的某些功能。

Linux下使用ar工具,将目标文件压缩到一起,并且对其进行编号和索引,以便于查找和检索。

  1. 生成.a静态库

将 hello.c hello.h 生成一个 .a:

  1. 先将.c编译成 .o文件

无论静态库还是动态库都是由.o文件创建的。因此,我么必须将源代码hello.c通过gcc先编译成.o文件,在Linux系统终端下使用命令

gcc –c hello.c

2)用.o生成.a

静态库文件名的命令规范是以lib为前缀,紧接着是静态库名,扩展名为.a,例如我们将创建的静态库名为hello,则静态库文件名就是libhello.a。在Linux系统下创建静态库需要使用ar命令,在终端输入以下命令:

ar -crv libmyhello.a hello.o

  1. 使用.a静态库,三种方法
  2. gcc -o hello main.c -L. –lmyhello
  3. gcc main.c libmyhello.a -o hello
  4. gcc -o hello main.o libmyhello.a

验证,删除.a库之后可执行文件还能正常运行即可!

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值