日期:2014-05-16 浏览次数:20772 次
原文来自CSDN博客:http://blog.csdn.net/lizhiliang06/article/details/8773254
linux编译静态库与动态库的实例,
我们简单的用实例来说明,
仅当抛砖引玉:
我这里所需要的.h,.c文件如下,
############################## # test.h ############################## void test( void ); ############################## # test.c ############################## #include <stdio.h> #include "test.h" void test( void ) { printf("test.elf .a test\n"); } ############################## # call.c ############################## #include <stdio.h> #include "test.h" int main() { test(); return 0; }
############################## # 动态库的生成 ############################## CFLAGS = LD=ld -g -O2 GENLIB = libtest.so ############################### #test c ############################### OBJECTS += test.o all: $(OBJECTS) gcc $(CFLAGS) -shared -o $(GENLIB) $(OBJECTS) %.o: %.c gcc -std=gnu99 -D_GNU_SOURCE=1 -ldl $(CFLAGS) -o $@ -c $< clean: rm -rf *.o *~ ############################## # 动态库的调用 ############################## LIBS= -L ./ -ltest ############################### #call c ############################### OBJECTS += call.o all: $(OBJECTS) gcc -o xxx $(OBJECTS) $(LIBS) %.o: %.c gcc -D_GNU_SOURCE=1 -ldl $(LIBS) -o $@ -c $< clean: rm -rf *.o *~ ############################## # 静态库的生成 ############################## CFLAGS = LD=ld -g -O2 GENLIB = libtest.a ############################### #test c ############################### OBJECTS += test.o all: $(OBJECTS) gcc $(CFLAGS) -shared -o $(GENLIB) $(OBJECTS) %.o: %.c gcc -std=gnu99 -D_GNU_SOURCE=1 -ldl $(CFLAGS) -o $@ -c $< clean: rm -rf *.o *~ ############################## # 静态库的调用 ############################## LIBS= -I. -L. -ltest ############################### #call c ############################### OBJECTS += call.o all: $(OBJECTS) gcc -o xxx $(OBJECTS) $(LIBS) %.o: %.c gcc -D_GNU_SOURCE=1 -ldl -o $@ -c $< clean: rm -rf *.o *~