makefileclean怎么写

1.如何写Makefile

hello: hello.o

gcc -o hello hello.o

hello.o: hello.c

gcc -c hello.c

clean:

rm -f hello *.o *.bak *~这就是最简单的helloworld的makefile有三个目标:hello、hello.o、clean,最上面的那个是默认目标,make不带参数时,找的就是这个目标。目标回溯过程:

目标hello =>; 依赖于hello.o =>; 目标hello.o =>; 依赖于 hello.c => hello.c =>; 成功

目标生成过程:

gcc -c hello.c =>; 得到hello.o =>;执行gcc -o hello hello.o =>; 得到hello => make成功!示例:

make

make hello.o

make clean

2.linux makefile怎么写

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

INC_PATH := -I./include/

LIB_PATH := -L./lib/

LIBS := $(LIB_PATH) -lerr -larm

CC := gcc

LD := gcc

CFLAGS := -O2 -Wall $(INC_PATH)

SRC_PATH := ./source

SOURCE := $(SRC_PATH)/a.c\

$(SRC_PATH)/b.c\

$(SRC_PATH)/c.c

TARGET := target

OBJS := a.o b.o c.o

$(TARGET): $(OBJS)

$(LD) -O2 -o $(TARGET) $(OBJS) $(LIBS)

a.o : $(SRC_PATH)/a.c

$(CC) $(CFLAGS) -c -o $@ $

3.如何自己编写Makefile

相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云。

在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide。其实makefile并没有想象的那么难写,只要你明白了其中的原理,自己实践几次。

你也可以自己写makefile,让别人对你头来羡慕的目光。 下面本人介绍一下自己的学习成果,初学阶段,欢迎大家多多指正。

简单的说,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至可以在makefile中执行shell脚本。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

关于程序的编译和链接 一般来说,无论是C还是C++,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile),一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。

编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。

链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来 链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给 中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。

下面我们开始看看如何自己写出makefile。 Makefile的规则 目标 : 需要的条件 (注意冒号两边有空格) 命令 (注意前面用tab键开头) 解释一下: 1 目标可以是一个或多个,可以是Object File,也可以是执行文件,甚至可以是一个标签。

2 需要的条件就是生成目标所需要的文件或目标 3 命令就是生成目标所需要执行的脚本 总结一下,就是说一条makefile规则规定了编译的依赖关系,也就是目标文件依赖于条件,生成规则用命令来描述。在编译时,如果需要的条件的文件比目标更新的话,就会执行生成命令来更新目标。

下面举个简单的例子说明。如果一个工程有3个头文件,和8个C文件,我们为了完成前面所述的那三个规则,我们的Makefile应该是下面的这个样子的。

edit : main.o kbd.o command.o display.o / insert.o search.o files.o utils.o cc -o edit main.o kbd.o command.o display.o / insert.o search.o files.o utils.o main.o : main.c defs.h cc -c main.c kbd.o : kbd.c defs.h command.h cc -c kbd.c command.o : command.c defs.h command.h cc -c command.c display.o : display.c defs.h buffer.h cc -c display.c insert.o : insert.c defs.h buffer.h cc -c insert.c search.o : search.c defs.h buffer.h cc -c search.c files.o : files.c defs.h buffer.h command.h cc -c files.c utils.o : utils.c defs.h cc -c utils.c clean : rm edit main.o kbd.o command.o display.o / insert.o search.o files.o utils.o 将上面的内容写入到Makefile文件中,然后执行make就可以进行编译,执行make clean就可以删除所有目标文件。解释一下,也就是说生成最终的目标文件edit,依赖于一系列的.o目标文件,而这些.o文件又是需要用源文件来编译生成的。

需要注意的是,clean后面没有条件,而clean本身也不是文件,它只不过是一个动作名字,其冒号后什么也没有,那么,make就不会自动去找文件的依赖性,也就不会自动执行其后所定义的命令。 make是如何工作的 在默认的方式下,也就是我们只输入make命令。

那么, 1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。 2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。

3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。 4、如果edit所依赖的.o文件也不存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。

(这有点像一个堆栈的过程) 5、当然,你的C文件和H文件是存在的啦,于是make会生成 .o 文件,然后再用 .o 文件生命make的终极任务,也就是执行文件edit了。 makefile中使用变量 前面的知识已经足以让你自己完成一个简单的makefile了,不过makefile的精妙之处远不止如此,下面来看看如何在makefile中使用变量吧。

在上面的例子中,先让我们看看edit的规则: edit : main.o kbd.o command.o display.o / insert.o search.o files.o utils.o cc -o edit main.o kbd.o command.o display.o / insert.o search.o files.o 。

4.这个makefile文件怎么写

obj-m =xxx.o

KDIR=xxx

PWD =$(shell pwd)

all:

make -C $(KDIR) M=$(PWD) modules

clean:

@rm -vf *.o *.ko *. *.mod.c *.order *.mod.o *.symvers *~

其中的xxx.o需要你自己填写,比如你这个文件是hello.c,那就写成hello.o,然后KDIR=xxx,这个xxx是linux源码目录,比如/home/xxx/kernel,那就写成KDIR = /home/xxx/kernel,然后在Makefile的目录下执行make就行了

5.怎么写这个程序的Makefile文件

Makefile文件名字,放在这个你这个程序的目录中:

prog=app

OBJS=sin_value.o cos_value.o haha.o main.c

LDFLAGS:= #这个是编译参数例:-lpthread 线程库

CFLAGS:= -g -Wall #可调式,以及编译警告通知

all:$(prog)

sin_value.o:sin_value.c

$(CXX) $(CFLAGS) -c -o $@ $^

cos_value.o:cos_value.c

$(CXX) $(CFLAGS) -c -o $@ $^

haha.o: haha.c

$(CXX) $(CFLAGS) -c -o $@ $^

main.o:main.c

$(CXX) $(CFLAGS) -c -o $@ $^

install:

cp $(prog) /bin

clean:

rm -rf *.o *~

rm -rf $(prog)

rm -rf /bin/$(prog)

$(prog):$(OBJS)

$(CXX) $(LDFLAGS) -o $@ $^

6.如何写Makefile

hello: hello.o gcc -o hello hello.ohello.o: hello.c gcc -c hello.cclean: rm -f hello *.o *.bak *~这就是最简单的helloworld的makefile有三个目标:hello、hello.o、clean,最上面的那个是默认目标,make不带参数时,找的就是这个目标。

目标回溯过程: 目标hello => 依赖于hello.o => 目标hello.o => 依赖于 hello.c => hello.c => 成功目标生成过程: gcc -c hello.c => 得到hello.o =>执行gcc -o hello hello.o => 得到hello => make成功!示例:makemake hello.omake clean。

7.makefile怎么写

如果你想写 Makefile 的话,那么你只要用一个不将制表符过滤掉的文本编辑器就可以了,用 vi/vim 可以,用 emacs 可以,用其它的 geditor 也是可以的,只要是文本编辑器就可以了。

你在 win 下也可以用记事本写 Makefile ,当然要确保你的系统已经安装了 make 了(最好了 GNU make)。Makefile 是不需要后缀的,也就是说 Makefile 的文件名就是 Makefile。

下面我给出一个我写的一个简单的 Makefile 给你参考一下吧:# Makefile for 'kmp'CC=gccCFLAGS=-gkmp: kmpindex.o getnext.o main.o $(CC) -o kmp kmpindex.o getnext.o main.okmpindex.o: kmpindex.c kmp.h $(CC) -c kmpindex.cgetnext.o: getnext.c kmp.h $(CC) -c getnext.cmain.o: main.c kmp.h $(CC) -c main.cclean: rm -f *.o# END没有太多的注释,因为是用于小测试的。希望对你有所帮助。

makefileclean怎么写

转载请注明出处育才学习网 » makefileclean怎么写

知识

hclo电子式过程怎么写

阅读(278)

本文主要为您介绍hclo电子式过程怎么写,内容包括HCLO电子式怎么写为什么,HClO的电子式如何书写,次氯酸电子式怎么写。次氯酸HClO中Cl元素显+1价,O元素显-2价,则结构式是H-O-Cl。对应的化学式是ClOH更正确。只是在无机化学中,无机物习惯上将

知识

hr标签怎么写

阅读(426)

本文主要为您介绍hr标签怎么写,内容包括<hr>标签样式是点划线怎么写呢,<hr/>是实线虚线怎么写标签,简历标签怎么写。方法1: 在<head&gt;中预先定义好CSS: <STYLE type=text/css> .dotline { BORDER-BO

知识

h2o的结构式怎么写

阅读(400)

本文主要为您介绍h2o的结构式怎么写,内容包括H2O的结构式是什么,水的结构式是什么,NH3.H2O的结构式。如图所示:

知识

一生平安的英语怎么写

阅读(217)

本文主要为您介绍一生平安的英语怎么写,内容包括一生平安英语怎么说,一生平安英语怎么说,一生平安的英语怎么说。一生平安:Life safety例句1.但愿明月千里寄相思,祝福您好人一生平安。Hopefully, the moon Trinidad

知识

书名用英语怎么写

阅读(292)

本文主要为您介绍书名用英语怎么写,内容包括英语书名怎么写,书名英语怎么写,英语书名怎么写。你好:英文书名:斜体,同时在英文书名中,连接词,介词,冠词等都要小写,但是当它们是书名中的第一个词时也要大写。例如:The Red an

知识

盛之繁体字怎么写

阅读(258)

本文主要为您介绍盛之繁体字怎么写,内容包括盛的繁体字怎么写,盛字繁体字怎么写几划,“盛”字的繁体字怎么写。

知识

狮子鞭怎么写

阅读(378)

本文主要为您介绍狮子鞭怎么写,内容包括狮子抢球怎么写话,狮子的狮字怎么写,狮子的是怎么写的。今天,我和爸爸妈妈到动物园去看狮子。 狮子的眼睛圆溜溜的,牙齿锋利无比,可以像锯子一样把肉撕成一片一片的。它浑身长着金黄色的毛发,看起来

知识

保险微店简介怎么写

阅读(174)

本文主要为您介绍保险微店简介怎么写,内容包括保险微信公众号功能介绍怎么写,微店店铺简介怎么写,微信公众平台里功能介绍关于保险的怎么写。保险微信公众号功能介绍当然是要介绍通过该

知识

杯字笔画顺序怎么写

阅读(225)

本文主要为您介绍杯字笔画顺序怎么写,内容包括杯字笔画顺序怎么写,杯字的笔画顺序怎么写,杯的笔顺笔画顺序。

知识

坏心情的英文怎么写

阅读(214)

本文主要为您介绍坏心情的英文怎么写,内容包括坏我心情用英语怎么说,我有一个坏的心情用英语怎么说,(突然间的坏心情)英文怎么写。On Mood What accnornpanies you all your life is not fortune and fame

知识

济宁的特产日记怎么写

阅读(194)

本文主要为您介绍济宁的特产日记怎么写,内容包括山东济宁风景,特产,习俗的作文,仿威尼斯的小艇写济宁的特产作文,济宁的特产。走在济宁或崭新或古朴的大街小巷里,仿佛在历史与现实中间穿行。静静的树,俏然而立的楼宇,默默无语的街巷,一瞬间,你就

知识

淘宝达人介绍怎么写

阅读(203)

本文主要为您介绍淘宝达人介绍怎么写,内容包括淘宝达人简介怎么写,淘宝达人的介绍,淘宝店铺介绍怎么写。首先,店铺一定要有自己的特色,有特色才能吸引顾客的眼球,把人吸引来了,你才能有机会把商品销售出去,都每人来,在好的商品也是卖不出去的。我

知识

圆体英文d怎么写

阅读(193)

本文主要为您介绍圆体英文d怎么写,内容包括圆体英文怎么写,怎样写圆体英文字母,26个英文字母花体和圆体写法。26个花体和圆体英文字母如下圆体

知识

农村三相电证明怎么写

阅读(308)

本文主要为您介绍农村三相电证明怎么写,内容包括三相电村证明怎么写,三相电申请书怎么写,农村电表开户证明怎么写。今证明我村村民XX家住(请写明开户人的家庭详细地址),因与父母分居,需要从新电表开户。特此证明。2、本人xxx,现因新建房屋需要装

[/e:loop]