【linux下C】动态库与静态库快速入门

为什么要用库:
我们在写代码时常用的一些功能,为了避免重复造轮子(每次都从头写),我们会把它编译好放到库中,以供写程序时直接调用,提高开发效率。

静态库快速入门:
1.新建一个sort.c文件,在其中可以编写一个函数,
例如int outmax(int a,int b),比较a和b哪个大,并返回较大者的值。
2.编译函数,并将编译后的文件加入静态库中

gcc -c outmax.c 

#编译max.c,生成了outmax.o

ar -r libmath.a outmax.o 

#将上一条命令生成的max.o 文件加入到库中,一般库以lib开头,扩展名为.a
3.编写主程序main.c,在主程序中可以直接使用之前写的max函数,如:

#include <stdio.h>
int outmax(int a,int b);  //注意这里声明必须加上
int main(){
    printf("outmax=%d\n",outmax(3,8));
    return 0;
}

4.编译主程序时带上静态库

gcc main.c libmath.a

5.此时应生成了一个a.out,

./a.out #执行a.out

静态库的好处:
可以使用一些自己编写的函数,编译的时候带上静态库就可以。

静态库的坏处:
编译生成的文件会比较大,因为把整个静态库加进去了。

动态库:
1.写好你的库函数,如sort.c
2.编译
gcc -c -fpic sort.c
3.将你的函数加入到动态库中
gcc -shared sort.o -o libmath.so
4.编译主程序 gcc main.c -lmath -L ./
5.将.so文件移动到/lib目录中(原因是动态库系统自动在/lib下查找)

mv libmath.so /lib

6.cat /etc/ld.so.conf(6 7步先照做吧)
7.ldconfig
8.执行程序。
./a.out

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民真快落

我琢磨着也没人给我打赏呀。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值