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

来源:互联网 发布:悦游网络加速器注册 编辑:程序博客网 时间:2024/05/12 23:17

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,函数自动生成动态库文件别添加到默认库路径中 

 

 

 

 

 

 

原创粉丝点击