如何生成静态库动态库-c语言

1.可执行文件编写

2.编写自己的makefile。

如果编写了一个简单函数 float_sum.c 实现浮点数相加,int_sum.c实现整型相加,并在主函数main中去实例化。源代码放入src文档

 

并编写myhead.h头文件放入include 文档

 

Makefile 文件和src,include放在同一个文件档中。

 

Makefile编写:

vpath %.c = ./src
vpath %.h = ./include

CFLAGS = -Wall -g -O0 -v
CC = gcc
OBJS = int_sum.o float_sum.o
SOURCES = ./src/int_sum.c ./src/float_sum.c

SO_FLAGS = -shared -fpic
AR_FLAGS = -Wall -c

main:main.c
    ### if /lib/libsum.so and /usr/lib/libsum.a co-exist, static library first ###
    $(CC) $(CFLAGS) -o $@ $< -lsum

### install share object ###
installso:$(OBJS)
    $(CC) $(SO_FLAGS) -o ./lib/libsum.so $(SOURCES)
    sudo cp ./lib/libsum.so /lib
    rm -rf *.o
uninstallso:
    sudo rm -rf /lib/libsum.so
    -rm -rf ./lib/libsum.so main

### install static library ###
installa:
    $(CC) $(AR_FLAGS) -o int_sum.o ./src/int_sum.c
    $(CC) $(AR_FLAGS) -o float_sum.o ./src/float_sum.c
    ar -rc ./lib/libsum.a $(OBJS)
    sudo cp ./lib/libsum.a /usr/lib
    sudo cp ./include/myhead.h /usr/include
    rm -rf *.o
uninstalla:
    sudo rm -rf /usr/lib/libsum.a
    -rm -rf ./lib/libsum.a main

clean:
    rm main *.o -rf

make installa ,函数自动生成静态库文件别添加到默认库路径中

make installso,函数自动生成动态库文件别添加到默认库路径中 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值