makefile多.cpp文件编译 (学习记录-makefile)

本文介绍了如何在Linux Ubuntu 16环境下,利用Makefile管理大型项目,包括创建编译规则、组织cpp文件、伪命令的应用和清理工作,适用于多文件工程的高效构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux makefile多个.cpp文件编译

因为目前所做服务器是再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

五、 望指正

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值