c linux 静态库和动态库的创建

c语言 静态库和动态库的生成和使用

编辑四个文件:A1.c A2.c A.h test.c

A1.c:

#include <stdio.h>

void print1(int arg){
printf(“A1 print arg:%d\n”,arg);
}

A2.c:

#include <stdio.h>

void print2(char *arg){
printf(“A2 printf arg:%s\n”, arg);
}

A.h

#ifndef A_H
#define A_H
void print1(int);
void print2(char *);
#endif

test.c:

#include <stdlib.h>
#include “A.h”

int main(){
print1(1);
print2(“test”);
exit(0);
}

1、静态库.a 的生成
生成目标文件(xxx.o)
---> gcc -c A1.c A2.c

生成静态库.a文件

---> ar crv libafile.a A1.o A2.o

使用.a库文件,创建可执行程序(若采用此种方式,需保证生成的.a文件与.c文件保存在同一目录下,即都在当前目录下)

---> gcc -o test test.c libafile.a

---> ./test

2、共享库.so文件的生成与使用

2.1、生成目标文件(xxx.o)(此处生成.o文件必须添加"-fpic"(小模式,代码少),否则在生成.so文件时会出错)

---> gcc -c -fpic A1.c A2.c

2.2、生成共享库.so文件

---> gcc -shared *.o -o libsofile.so

2.3、使用.so库文件,创建可执行程序

---> gcc -o test test.c libsofile.so

---> ./test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值