makefile的学习

来源:互联网 发布:淘宝推广技巧视频 编辑:程序博客网 时间:2024/06/04 18:16

一个源文件:

#因为有多线程,所以后面添加了-lpthreadTest:Test.c    gcc -g Test.c -o Test -lpthread

多个文件:

all:Server ClientServer:Server.cpp    g++ -g Server.cpp -o ServerClient:Client.cpp    g++ -g Client.cpp -o Client

一个最基本的makefile,包括3个头文件,4个源文件

PosServer:main.o PosServer.o DataBase.o public_function.o    g++ -o PosServer  main.o PosServer.o DataBase.o public_function.o -lpthread -L/usr/lib/x86_64-linux-gnu -lmysqlclientmain.o:main.cpp PosServer.h DataBase.cpp DataBase.h public_function.h    g++ -c main.cppPosServer.o:PosServer.cpp PosServer.h    g++ -c PosServer.cppDataBase.o:DataBase.cpp DataBase.h    g++ -c DataBase.cpppublic_function.o:public_function.cpp public_function.h    g++ -c public_function.cppclean:    rm PosServer main.o PosServer.o DataBase.o public_function.o

优化后的makefile

#声明一个变量objectsobjects = main.o PosServer.o DataBase.o public_function.oPosServer : $(objects)    g++ -o PosServer  $(objects) -lpthread -L/usr/lib/x86_64-linux-gnu -lmysqlclientmain.o:PosServer.h DataBase.cpp DataBase.h public_function.hPosServer.o : PosServer.hDataBase.o : DataBase.hpublic_function.o : public_function.h#.PHONY表示clean是个伪目标文件.PHONY : cleanclean :     -rm PosServer $(objects)

再简单点:

EXE = PosServer         #可执行文件名all : $(EXE)$(EXE) : main.cpp PosServer.h DataBase.h public_function.h    g++ -g -o $(EXE) main.cpp PosServer.cpp DataBase.cpp public_function.cpp -lpthread -L/usr/lib/x86_64-linux-gnu -lmysqlclient#.PHONY表示clean是个伪目标文件.PHONY : cleanclean :     -rm -f $(EXE)
0 0