Linux下动态库和静态库的制作与使用

一、制作静态库
1.编写自己的.c文件,用于生成动态库,如add.c
2.编译写好的.c文件 注意:只编译不链接
gcc -c add.c -o add.o
3.用ar命令把add.o打包成静态函数库
ar cqs libmyadd.a add.o 注意:定义的函数库名字必须以lib开头
二、使用静态链接库
1.将制作好的静态函数库libmyadd.a复制到/usr/lib目录下
cp ./libmyadd.a /usr/lib
2.自己编写的应用程序,例如:test.c 且要编写关于静态库libmyadd.a的头文件,例:add.h,头文件中是静态库中的函数声明,,头文件放在test.c目录下
3.test.c中包含add.h
4.编译test.c
gcc -static test.c -lmyadd -o test 注意:动态库为libmyadd.a 使用静态库时用-l指明库的名字且名字要去掉lib 和.a

//add.c
int add(int a,int b)
{
    return a+b;
}
//add.h
int add(int a,int b)
//test.c
#include<stdio.h>
#include"add.h"
void main()
{
    int a=0;
    a = add(7,3);
    printf("a=%d",a);
}

三、制作动态库
1.使用上述add.c
2.编译add.c
gcc -c add.c -o add.o
3.生成动态库
gcc -shared -fPIC add add.o -o libadd.so

-fPIC使输出的对象模块是按照可重定位地址方式生成的。
-shared 指明产生动态库链接库
四、使用动态链接库
1.将制作好的动态函数库libadd.so复制到/usr/lib目录下
2.cp ./libadd.so /usr/lib
3.test.c文件中包含add.h头文件,add.h放在test.c目录下
4.编译test.c文件
gcc test.c -ladd -o add

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值