因为目前所做服务器是再Linux ubuntu16的环境下开发,且工程涉及多个.cpp文件,那么单纯用g++就无法实现工程的编译,所以需要用到makefile来实现多文件编译,在这里对makefile的使用做个简单的记录
一、makefile的作用 一个定义了一系列编译规则的文档,记录原始代码如何编译的详细信息.makefile写好后通过make命令即可对工程进行编译;
二、 工程makefile脚本源码.PHONY: run clean run:go epollbase.o:Epollbase.cpp Epollbase.h g++ -c Epollbase.cpp -o epollbase.o tcpserver.o:TcpServerImp.cpp TcpServerImp.h g++ -c TcpServerImp.cpp -o tcpserver.o tcpclient.o:TcpClientImp.cpp TcpClientImp.h g++ -c TcpClientImp.cpp -o tcpclient.o csockfac.o:CSocketFactory.cpp CSocketFactory.h g++ -c CSocketFactory.cpp -o csockfac.o cepoll.o:CEpoll.cpp CEpoll.h g++ -c CEpoll.cpp -o cepoll.o ctask.o:CTask.cpp CTask.h g++ -c CTask.cpp -o ctask.o cpool.o:CThreadPool.cpp CThreadPool.h g++ -c CThreadPool.cpp -o cpool.o cshmfifo.o:CShm.cpp CShm.h g++ -c CShm.cpp -o cshmfifo.o msqque.o:Msqque.cpp Msqque.h g++ -c Msqque.cpp -o msqque.o csem.o:CSem.cpp CSem.h g++ -c CSem.cpp -o csem.o main.o:main.cpp Msqque.h CSem.h g++ -c main.cpp -o main.o go:main.o msqque.o csem.o cshmfifo.o cpool.o ctask.o cepoll.o tcpserver.o tcpclient.o csockfac.o epollbase.o g++ -o go main.o msqque.o csem.o cshmfifo.o cpool.o ctask.o cepoll.o csockfac.o tcpserver.o tcpclient.o epollbase.o -lpthread ./go clean: rm -f *.o go说明:
1. makefile文件中一定要讲.cpp文件先编译成.o文件,再将.o文件编译成可执行程序 2. .PHONY: run clean有点类似C语言的宏定义,run和clean是伪命令,make + 伪命令可执行其代表的编译代码 3. 每个编译行都需要tab键开头 4. ./go表示编译完毕立即执行可执行程序三、 如果脚本文件名不是makefile可在终端输入 make -f 脚本文件名 也可进行编译 四、 参考博客
https://blog.csdn.net/qq_41748900/article/details/82316662
https://www.cnblogs.com/henuliulei/p/9918054.html
五、 望指正


