首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

makefile编纂差异

2013-09-26 
makefile编写差异由于zlib动态库在linux下引用的问题引出了对于简练的makefile的学习。之前通过看网络上的

makefile编写差异

由于zlib动态库在linux下引用的问题引出了对于简练的makefile的学习。之前通过看网络上的一些文章自己也算简单了解如何编写一个makefile,可总是不那么美观,今天经过辉哥的指点,对于makefile做了调整,看下两者之间的差别吧。如果有更好的方法,欢迎指点。

 

第一次文件如下:

CPP=filehead.cpp xmailuncompress.cpp zlibstrage.cpp compressfactory.cpp md5.cppOBJ =  md5.o compressfactory.o filehead.o xmailuncompress.o zlibstrage.o.PHONY:ALLALL: libcompress.a libcompress.so  onlyUncompress mytestHEAD =  -I./include/mytest: main.cpp    g++ main.cpp -g -L. -lcompress   -L./so/ -llogger ${HEAD} -I. -o $@    rm -f *.o       onlyUncompress:unCompress.cpp    g++ unCompress.cpp -g -L. -lcompress  -L./so/ -llogger ${HEAD} -I. -o $@libcompress.a:$(OBJ)    ar -rc libcompress.a $(OBJ)     libcompress.so:$(CPP)    g++ -g -fPIC -shared -Wl,-rpath ./so/ -L./so -lz -llogger ${CPP} -o $@  ${HEAD}    cp libcompress.so ./so/compressfactory.o:compressfactory.cpp    g++ -c compressfactory.cpp ${HEAD}filehead.o:filehead.cpp    g++  -c filehead.cpp ${HEAD}xmailuncompress.o:xmailuncompress.cpp    g++  -c xmailuncompress.cpp ${HEAD}zlibstrage.o:zlibstrage.cpp    g++  -c zlibstrage.cpp -L./so -lz ${HEAD}md5.o:md5.cpp    g++  -c md5.cpp ${HEAD}install:    cp libcompress.so ../libcomp/so/    cp ./so/*.so ../libcomp/so/    cp *.h       ../libcomp/include/    cp ./include/* ../libcomp/include/        cp *.h       ../dfs_api/include/compress/    cp libcompress.so ../dfs_api/lib/clean:    rm -f *.o    rm -f libcompress.a    rm -f mytest    rm -f onlyUncompress    rm -f libcompress.so

 

经过修改后的makefile如下:

 

CPP=main.cpp filehead.cpp xmailuncompress.cpp zlibstrage.cpp compressfactory.cpp md5.cppFLAG= -c -g -fPIC -sharedOBJ=filehead.o xmailuncompress.o zlibstrage.o compressfactory.o md5.o.PHONY:ALLall:libcompress.a libcompress.so  onlyUncompress mytestHEAD= -I./include/ -I.LIB= -L./ -llogger -lzmytest: main.o    g++ $< -g -L. -lcompress  ${LIB}  ${HEAD} -I. -o $@    rm -f *.o       onlyUncompress:unCompress.cpp    g++ unCompress.cpp -g -L. -lcompress  ${LIB} ${HEAD} -I. -o $@libcompress.a:$(OBJ)    ar -rc libcompress.a $(OBJ)     libcompress.so:$(OBJ)    g++ -g -fPIC -shared -Wl,-rpath ${LIB} $(OBJ) -o $@  ${HEAD}.cpp.o:    g++ $(HEAD) $(FLAG) -o $@ $< install:    cp libcompress.so ../libcomp/so/    cp *.so ../libcomp/so/    cp *.h       ../libcomp/include/    cp ./include/* ../libcomp/include/        cp *.h       ../dfs_api/include/compress/    cp libcompress.so ../dfs_api/lib/clean:    rm -f *.o    rm -f libcompress.a    rm -f mytest    rm -f onlyUncompress    rm -f libcompress.so

 

两者对比来看是不是后者清晰简练不少makefile编纂差异

顺带的了解了两个小的知识点:

在makefile中$>代表引用“:”后的内容,,,$@引用“:”前的内容

热点排行