robocup实验室培训-Makefile的使用

本文介绍Makefile的基础知识,包括其格式、伪目标的使用,以及如何通过Makefile简化项目编译过程。通过实例演示了如何创建Makefile,实现源文件的自动编译和清理。

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


写给robocup机器人实验室的新成员

随着项目的增大,通过g++命令编译每一个源文件费时费力。于是出现了Makefile,使用Makefile,可以通过make命令直接编译出可执行文件。

一个简单的Makefile示例

创建一个源文件,名字随意,我这里是main.cpp
新建一个名为Makefile的文件,里面写:

main: main.o
	g++ main.o -o main
main.o: main.cpp
	g++ -c main.cpp 

把终端切换Makefile目录下,运行命令make

生成了main.omain可执行文件。

Makefile基本格式

目标:依赖

【Tab】命令

以上称为一条规则

上面的Makefile中,有两条规则

  • 冒号前的main和main.o是目标
  • 冒号后的文件名代表依赖
    第一个规则的依赖是main.o,表示要生成main需要先生成main.o,第二个规则的依赖是mian.cpp
  • 目标和依赖下面这一行是命令
    通过这个命令得到目标

例子:

上次我们写了一个类,有3个文件。

在三个文件的目录下写如下Makefile:

say: main.o Test.o
	g++ main.o Test,o -o say
main.o: main.cpp
	g++ -c main.cpp
Test.o: Test.cpp
	g++ -c Test.cpp

运行make就能生成say可执行,以及两个.o编译文件。

伪目标

没有依赖只要执行动作的目标称为伪目标(phony targets)

.PHONY: clean
clean:
	rm -f say main.o Test.o

.PHONYclean目标声明为伪目标。

添加伪目标后的完整makefile:

say: main.o Test.o
	g++ main.o Test,o -o say
main.o: main.cpp
	g++ -c main.cpp
Test.o: Test.cpp
	g++ -c Test.cpp
	
.PHONY: clean
clean:
	rm -f say main.o Test.o

此时运行make命令可以编译所有文件并生成可执行文件。
运行make clean命令可以删除生成的.o文件和可执行文件。

·1.内容简介: --------------------------------------------------------------- 这是一个压缩包,里面是文件是东南大学Robocup3D仿真比赛的培训资料,当然包括新手上路等资料和平台和基础源代码 建议,对Robocup机器人比赛感兴趣或者东南大学以及其他高校的参赛同学下载学习。否则,会感觉我的文件都不知道什么东西。 --------------------------------------------------------------- ·2.资源使用方法 suse Linux 环境下编译运行,注意,必须安装好开发环境和仿真环境。 --------------------------------------------------------------- ·3.文件组成形式 格式:tar.gz 创建日期 时间 文件大小 文件名 2008-10-15 15:56 330,241 3D新手上路v0.4.pdf 2008-10-22 17:59 372,952 5v5rule.pdf 2008-10-22 18:05 7,919,214 rcss3d-suse-install-11.0.tar.gz 2008-10-10 23:06 343,552 RoboCup讲稿.ppt 2008-10-22 18:04 459,785 seu-3d-0.3.c.release-5v5.tar.gz 2008-10-22 18:04 240,556 SEU-3D-5v5.tar.gz 2008-10-22 17:57 208,384 SEU-3D框架结构.doc 2008-10-20 10:51 835,301 入门材料v1.01[1].zip 2008-10-22 17:58 3,197,172 毕业设计.rar 2008-11-28 23:53 170,496 第五届RoboCup竞赛获奖名单.doc 2008-10-22 18:05 1,338,283 第四届前十.rar 2008-10-15 16:25 43,520 驱动安装.doc --------------------------------------------------------------- ·4. wogeguaiguai的附言: 1.我的其他数学建模精华资源也欢迎您下载,大学生基本上都听过这个比赛吧,这个比赛比较有意思,而且获奖比例高。我的资料都是非常好的准备比赛要用的资料。我比赛结束之后,这些资料就不用啦,分享给大家!俺一年的搜索资源,同学们一朝即可获得! 2.下载本文件后,您可以获得所有信息,不必再零散下载,给您带来很大的方便。 3.10个资源分,绝对物超所值。评论后,您就可以获得11个资源分,欢迎您评论! --------------------------------------------------------------- ·5.如有问题,请在此留言,谢谢。 --------------------------------------------------------------- ·6.上传时间 2010-2-24-night
·1.【原创资源】内容简介: --------------------------------------------------------------- 这是一个压缩包,里面是国际赛数模训练时,做无线电信道分配所用的资料 --------------------------------------------------------------- ·2.资源使用方法 microsoft word Adobe pdf 浏览 --------------------------------------------------------------- ·3.文件组成形式 格式:doc pdf文件 /**********************************************/ 文件名如下: (Toolkit的具体使用方法)SEU-3D-TOOLKIT使用手册.pdf (三位老队员的毕业设计,可供参考).zip (各个队伍可以此源码作为基础,阅读代码后进行修改使这个基础队伍变强从而参加比赛)seu-base.tar.gz (基础源码的简要介绍)presentation.pdf (更新版本维护了调试工具toolkit,各个队伍可以使用调试工具,更快更专业地调试你们的代码)seu-base-toolkit-update.tar.bz2 (测试队伍可以用来和自己的队伍进行比赛,测试自己开发的队伍的能力到了什么程度。 )teams_for_test.zip (老队员王巍的代码阅读笔记,可供参考。)SEU-3Architecture.doc (这个是server的安装包,参考新手上路进行安装 rcss3d-suse-install-11.X.tar.gz (这个是server的配置文件,如何使用请参阅新手上路)rcssserver3D.rb (这个是开始比赛之前的配置,同样请参考新手上路进行配置agentdb.list 23D introduction by xuyuan v0.4.pdf 3d_rules.pdf FAQ FAQ~ Linux菜鸟教程 国际足球比赛规则.pdf 文件说明.pdf 新手上路.pdf 通知.doc /**********************************************/ --------------------------------------------------------------- ·4. wogeguaiguai的附言: 1.我的其他数学建模资源也欢迎您下载,都是非常好的准备比赛要用的资料。俺一年的搜索资源,同学们一朝即可获得! 2.下载本文件后,您可以获得所有信息,不必再零散下载,给您带来很大的方便。 3.10个资源分,绝对物超所值。评论后,您就可以获得11个资源分,欢迎您评论! --------------------------------------------------------------- ·5.如有问题,请在此留言,谢谢。 --------------------------------------------------------------- ·6.上传时间 2010-2-24-afternoon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值