创建一个linux 静态库
1.我们先写一个简单的函数
maxh.h
int max(int a,int b);
maxh.c
int max(int a,int b)
{
return (a>b)?a:b;
}
再写一个调用的
testmain.c
#include <stdio.h>
#include "maxh.h"
int main(int argc,char *argv[])
{
int a,b;
printf("\nPlease input two num\n");
scanf("%d%d",&a,&b);
printf("\nThis Max is %d\n",max(a,b));
return 0;
}
2.写Makefile
CC=gcc
AR=ar
ALLOBJSRC=maxh
ALLOBJ=$(ALLOBJSRC).o
LIB_A=lib$(ALLOBJSRC).a
TARGET=testmain
MAINPRO=$(TARGET).o
all: $(ALLOBJ) $(MAINPRO)
$(AR) -rcs $(LIB_A) $(ALLOBJ)
$(CC) $(MAINPRO) -o $(TARGET) -I. -L. -l$(ALLOBJSRC)
$(ALLOBJSRC).o: $(ALLOBJSRC).c $(ALLOBJSRC).h
$(CC) -c -I. -o $@ $<
$(MAINPRO): $(TARGET).c
$(CC) -c -I. -o $@ $<
clean: $(ALLOBJ)
rm -rf $(LIB_A) $(ALLOBJ) $(TARGET) $(MAINPRO)
#ar cs libmy.a //create library
#ar rs libmy.a xxx.o //add module to library
#ar t libmy.a //display module library
#ar d libmy.a xxx.o //delete module from library
make
./testmain