1.前言
我在此说明一下,这是我的第一个成功的makefile文件,我也是刚刚入门,写的不好的地方,大家可以在评论区给我留言,感谢大佬们的帮助。我就把我这几天琢磨出来的成果给大家分享一下吧。
2.关键点
首先,有一些关于makefile的基础使用命令,我参照了这篇文章:点我查看
makefile文件是做什么的呢?简单来说,是可以建立一个c/c++项目的。它和我们在windows操作系统下用devc++写项目是一样的。回顾一下,你是如何用devc++来写c语言项目的。我们首先要写几个.c文件是吧,然后这几个.c文件要彼此调用,产生联系是吧,我们怎么让它们产生联系,是不是包含它们的文件名呀。举个例子,假如我们有一个hello1.c要调用hello2.c中的函数什么的,我们要在hello1.c里最开始就要包含头文件#include"hello2.h"。在linux操作系统中,我们通过makefile文件建立项目时,这些要引用的头文件放在.h中,单独成为一个文件。要注意那些c语言库里面的头文件不能和.c文件分开,写在.h中。
下面举个例子:
上图是我创建的思路,一共创建4个文件,分别是主文件hello1.c(包含主函数),hello2.c(要调用的文件),hello.h(引用hello2),makefile文件。
makefile文件的名字就叫makefile,文件名固定。makefile文件的语法我下面再说。
照上图创建好文件以后,我们在保存文件的那个目录下打开终端(否则,会报找不到文件)最简单的方式是直接默认放在home根目录下。输入指令make,就会发现多了几个文件hello1.o,hello2.o,program.再输入./program,就运行目标项目了。
3.创建文件用什么软件呢
软件使用ubantu自带的软件Text Editor.打开方式如图
4.有关makefile的一点皮毛
语法规则:
target:依赖文件列表
<tab>执行命令
其中,target是目标文件名,<tab>是tab键。
-c:只编译,不链接成可执行文件。编译器只生成.o后缀的目标文件,通常用于不包含主程序的子程序文件。
-o file:确定输出文件名称为file,该名称不能和源文件同名。若没有该选项,默认生成可执行文件a.out.
5.我写的makefile的解释
依赖文件就是要执行那个文件所需要的文件,比如hello1.o,只依赖hello1.c绝对不行,因为,hello1.c中调用了hello2,所以还要hello.h。