库的制作(简单直接)

Linux系统下动态库与静态库的制作步骤。
静态库
1.将源文件编译生成目标文件:
······gcc -c 文件名.c -o 名.o
2.创建静态库,用到的是ar命令,可以将多个.o 转换成.a:
······ar crs lib名.a 名.o
静态库制作完成,下面是测试:
3.测试使用的静态库:
······gcc main.c -L./路径 -l名 -------这个名字不包含lib和.a
4.执行 ./a.out
例:
在这里插入图片描述
拿一个简单的例子,一个函数.c 一个主函数 一个头文件
然后把步骤带入:
在这里插入图片描述

静态库制作到测试完成。
动态库:
1.将源文件编译生成目标文件 -fPIC 创建与地址无关的编译程序
gcc -fPIC -c 名.c -o 名.o
2.创建动态库
gcc -shared -o lib库名.so 名.o
3.测试动态库使用
先把库拷贝到/usr/lib和/lib目录下,不然会报错,(或用大写的i指定路径)
然后 gcc main.c -L./ -l库名 -------也是去掉lib和.so
4.执行时需要加上库名
./a.out libmyhello.so
在这里插入图片描述
在这里插入图片描述
中间出了点小问题,所以分开截了。
动态库也完事了,运行的时候一定要带上动态库。

动态库与静态库的区别:
载入时刻:在程序编译时被连接到目标代码中,动态库在程序运行时被载入代码中
运行速度:静态库运行时不需要加载库,运行速度快
代码体积和移植性:因为静态库中的代码复制到了程序中,所以体积较大,编译后就可以删掉静态库了,移植时只需要吧a.out 复制过去就可;动态库的话因为每次运行都需要动态库的存在,所以移植性较差。
库升级后: 静态库升级后,程序需要重新编译链接,动态库不用

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值