資源描述:
《makefile學(xué)習(xí)經(jīng)驗(yàn)-編譯生成動(dòng)態(tài)庫(kù)文件(方式一)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、makefile學(xué)習(xí)經(jīng)驗(yàn)(三)----編譯生成動(dòng)態(tài)庫(kù)文件(方式一)unix下生成動(dòng)態(tài)庫(kù)文件:????????之前已經(jīng)介紹了.o,.a,.so文件類型的含義,.so后綴的文件是動(dòng)態(tài)庫(kù)文件。???????下面介紹在編譯過(guò)程中鏈接到動(dòng)態(tài)庫(kù)文件的方法:一.???源碼文件: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動(dòng)態(tài)鏈接庫(kù)#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)?三.對(duì)makefile文件的簡(jiǎn)單闡述:基本的變量賦值在生成靜態(tài)庫(kù)文件已經(jīng)介紹了,這邊就不再重復(fù)了。?和靜態(tài)庫(kù)文件的生成不同的是,編譯的命令不同:1.