欢迎来到天天文库
浏览记录
ID:8820770
大小:36.00 KB
页数:5页
时间:2018-04-08
《makefile学习经验-编译生成动态库文件(方式一)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、makefile学习经验(三)----编译生成动态库文件(方式一)unix下生成动态库文件: 之前已经介绍了.o,.a,.so文件类型的含义,.so后缀的文件是动态库文件。 下面介绍在编译过程中链接到动态库文件的方法:一. 源码文件:so_test.h:voidtest_a();voidtest_b();voidtest_c(); test_a.c:#include"so_test.h"voidtest_a(){ printf("thisisintest_a...
2、");} test_b.c:#include"so_test.h"voidtest_a(){ printf("thisisintest_b...");} test_c.c:#include"so_test.h"voidtest_a(){ printf("thisisintest_c...");} test.c:#include"so_test.h"intmain(){test_a();test_b();test_c();return0;} 二.Makefile文件:#*****
3、************************************************************************#Copyright : ##Author : huochangjun#Date : 2012-08-16#Version : Demo1动态链接库#Description : Demo##**********************************
4、******************************************/ SHELL=/bin/sh LIB_DIR=/cbs/lhbb/hcj/dy2/lib/BIN_DIR=/cbs/lhbb/hcj/dy2/bin/OBJECT_DIR=/cbs/lhbb/dy2/test/obj/APP_DIR=/cbs/lhbb/hcj/dy2/testapp/ $(shellmkdir-p${LIB_DIR})$(shellmkdir-p${BIN_DIR})$(shellmkdir-p
5、${OBJECT_DIR}) RM=rm-fr#**************************************************************************** CC=gccSHARED=-shared-oFPIC=-fPIC-c SRC_OBJECT=$(APP_DIR)test_a.c$(APP_DIR)test_b.c$(APP_DIR)test_c.cH_OBJECT=$(APP_DIR)so_test.hOBJECT=test_a.otest_b.
6、otest_c.o DY_SRC_OBJECT=$(APP_DIR)test.cDY_OBJECT=test.o LIB_OBJECT=libtest.soBIN_OBJECT=test #**************************************************************************** .PHONY:allall:$(LIB_OBJECT)$(BIN_OBJECT) $(LIB_OBJECT):$(OBJECT) $(CC)$(O
7、BJECT)$(SHARED)-fPIC-o$(LIB_OBJECT) mv$(LIB_OBJECT)$(LIB_DIR) $(OBJECT):$(SRC_OBJECT)$(H_OBJECT) $(CC)$(FPIC)$(SRC_OBJECT) $(BIN_OBJECT):$(DY_OBJECT) $(CC)$(OBJECT_DIR)$(DY_OBJECT)-L$(LIB_DIR)-ltest-o$(BIN_OBJECT) mv$(BIN_OBJEC
8、T)$(BIN_DIR) $(DY_OBJECT):$(DY_SRC_OBJECT) $(CC)-c$(DY_SRC_OBJECT) mv$(OBJECT)$(DY_OBJECT)$(OBJECT_DIR) clean: $(RM)$(LIB_DIR)$(BIN_DIR)$(OBJECT_DIR) 三.对makefile文件的简单阐述:基本的变量赋值在生成静态库文件已经介绍了,这边就不再重复了。 和静态库文件的生成不同的是,编译的命令不同:1.
此文档下载收益归作者所有