栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

五、 望指正
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号