//http://wg2009perfect.blog.163.com/blog/static/127997663200992995834510/
在Linux下写c/c++程序的,一定都会用的,下面是一个比较简单的Makefile文件,也是一个比较通俗的:
OBJECT = main.o App.o GetPwd.o md5.o TEA.o QQSession.o QQ.o PcapBase.o
CFLAGS = -g -c -O3
abc: $(OBJECT)
g++ $(OBJECT) -o abc -g -lpcap -licui18n -licuuc
main.o: main.cpp App.h
g++ main.cpp $(CFLAGS)
App.o: App.cpp App.h PcapBase.h Packet.h Common.h QQ.h PktParser.h PcapException.h
g++ App.cpp $(CFLAGS)
GetPwd.o:GetPwd.cpp GetPwd.h Common.h Md5.h TEA.h
g++ GetPwd.cpp $(CFLAGS)
QQSession.o: QQSession.cpp Packet.h GetPwd.h Common.h TEA.h Md5.h unicode/ucnv.h
g++ QQSession.cpp $(CFLAGS)
QQ.o: QQ.cpp Packet.h Md5.h QQSession.h Common.h
g++ QQ.cpp $(CFLAGS)
md5.o: md5.cpp Md5.h
g++ md5.cpp $(CFLAGS)
TEA.o: TEA.cpp TEA.h Common.h
g++ TEA.cpp $(CFLAGS)
PcapBase.o: PcapBase.cpp PcapBase.h PcapException.h
g++ PcapBase.cpp $(CFLAGS)
clean :
rm *.o
分析:
OBJECT = main.o App.o GetPwd.o md5.o TEA.o QQSession.o QQ.o PcapBase.o
所有.cpp 文件都在生成一个对应的.o文件
CFLAGS = -g -c -O3
-g :程序支持调试功能,即用gdb调试;-O3:在编译程序时对程序做优化
abc: $(OBJECT)
$(OBJECT) : shell变量,就是前面定义的那一串等同
g++ $(OBJECT) -o abc -g -lpcap -licui18n -licuuc
这一行,-lpcap -licui18n –licuuc , 一些库的调用,因为后面没有跟路径就是在系统路径下
接下来的多行,如下的:
main.o: main.cpp App.h
g++ main.cpp $(CFLAGS)
.o文件: .cpp文件 .cpp文件依赖的头文件, 下面就是编译了
到最后一行:删除所有的.o文件
clean :
rm *.o
这个最简单的给初学者做个入门参考,谢谢支持…