日期:2014-05-16  浏览次数:20613 次

创建一个linux 静态库

创建一个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


?