makefile简单介绍

来源:互联网 发布:罗素兰挂号 知乎 编辑:程序博客网 时间:2024/04/30 10:49

网上搜了很多“makefile”的教程,都是非常详细的长篇,看的晕乎乎的,估计不磕个几天是学不到什么的。所以我还是写一个简单的笔记,适合初学者

另外介绍一个详细的网站 跟我一起写Makefile


target ... : prerequisites ...command......
这是基本的句式】。

target是目标文件(可以是可执行文件,可以是标签)

prerequisites是生成目标文件所需要的文件或者目标

command是命令,也就是shell命令(shell是一种脚本语言,可以简单看下教程,如果有其他语言基础,那学起来很快)


好了,有了上面的基础我们就可以开始尝试makefile了:

先写三个基本的文件:main.cpp classA.cpp classA.h

基本内容:classA是一个简单的类,然后在main中调用这个类,具体代码和在vs中一样,所以就不详细帖出来了。

直接上makefile代码(文件取名为makefile):

edit : main.o classA.o g++ -o edit main.o classA.omain.o : main.cpp classA.hg++ -c main.cppclassA.o : classA.cpp classA.hg++ -c classA.cppclean : rm main.o classA.o

直接在终端的相应目录下输入make即可看到结果,当然也不一定取名为makefile,但是要执行就要用:make -f filename


刚一看还是有点迷糊的,我来简单分析一下(新人目光,不负责对错):

1. edit是一个标签,不会生成这个文件,我觉得应该是个将几个.o生成最后的可执行文件的一个过渡

后面有两个.o文件,说明了其有依赖性

下一段是一句shell命令,目的是将两个.o生成最后的可执行文件finsh.out

2. main.o 后跟着main.cpp和classA.h,说明生成main.o依赖于这两个文件

紧跟着是一句shell命令,目的是编译生成main.o,也就是上一步需要的文件

3. 与上一步一样

4. clean,这句与上面的不同,从下面的命令可以看出这句的作用是删除这几个文件,我们可以这样调用make clean


这样几步差不多就学会了如何编译链接简单的工程,当然makefile还有很多高端的东西~慢慢学吧

0 0
原创粉丝点击