首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Makefile文件编写

(任意的shell命令) make工作 默认执行 make 命令时, GNU make在当前目录下依次搜索下面3个文件 "GNUmakefile", "makefile", "Makefile", 如果找到...,它会找文件中的第一个目标文件(target),并把这个文件作为最终的目标文件。...如果target文件不存在,或是target所依赖的后面的 .o 文件文件修改时间要比target这个文件新,那么,他就会执行后面所定义的命令来生成target这个文件。...如果target所依赖的文件也不存在,那么make会在当前文件中找依赖文件,如果找到则再根据那一个规则生成依赖文件。...典型的伪目标是 Makefile 中用来清理编译过程中中间文件的 clean 伪目标, 一般格式如下: .PHONY: clean <-- 这句没有也行, 但是最好加上 clean: -rm

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux中Makefile文件详解

Makefile 示例 # Makefile 示例 # 编译器 CC = gcc # 编译选项 CFLAGS = -Wall -g # 目标文件 TARGET = myprogram # 源文件...注意事项 空格问题: Makefile 使用 Tab 键而不是空格来缩进规则。 文件依赖: Makefile 的核心是文件之间的依赖关系,确保每个目标都依赖于正确的文件。...Makefile 规则 Makefile 通常包含规则(rules),规则描述了如何生成一个或多个目标文件。...make 使用一个名为 Makefile文件,其中包含了一系列规则和指令,描述了文件之间的依赖关系以及如何生成目标文件。以下是一个简单的 Makefile 文件的结构和基本要素: 11....注意到这个 Makefile 中的变量和规则可以根据项目的结构和需求进行适当的调整。 23. 安装规则 Makefile 可以包含安装规则,用于将可执行文件、库文件等安装到指定位置。

19510

make命令和makefile文件

makefile文件由一组依赖关系和规则构成,每个依赖关系由一个目标和一组该目标所依赖的源文件组成,而规则描述了如何通过这些依赖文件创建目标,一般来说,目标是一个单独的可执行文件。...makefile文件 1.1 依赖关系 myapp: main.o 2.o 3.o main.o: main.c a.h 2.o: 2.c a.h b.h 3.o: 3.c b.h c.h   依赖关系定义了最终应用程序里的每个文件和源文件之间的关系...  如果想一次创建多个文件,可以利用伪目标all all: myapp myapp.1   建议约定:在自己的makefile文件中将第一个目标定为all,然后再列出其它重属目标 1.2...规则   makefile文件中一个非常奇怪而又令人遗憾的语法现象:空格和制表符是有区别的,规则所在的行必须以制表符开头,用空格是不行的,如果makefile文件中的某行以空格结尾,也可能导致make命令执行失败...文件中的宏   为了让makefile文件在面对大项目时不至于过于庞大和缺乏弹性,makefile文件允许使用宏以一种更通用的格式来书写它们   MACRONAME = value (MACRONAME

2.5K40

文件目录Makefile的写法

文件目录Makefile写法 1、前言   linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile 2、简单测试   测试程序在同一个文件中,共有func.h...、func.c、main.c三个文件Makefile写法如下所示: 1 CC = gcc 2 CFLAGS = -g -Wall 3 4 main:main.o func.o 5 $...3、通用模板   实际当中程序文件比较大,这时候对文件进行分类,分为头文件、源文件、目标文件、可执行文件。...也就是说通常将文件按照文件类型放在不同的目录当中,这个时候的Makefile需要统一管理这些文件,将生产的目标文件放在目标目录下,可执行文件放到可执行目录下。测试程序如下图所示: ?...附:我的makefile: ######################################## #makefile ####################################

3.6K20

makefile 指定文件的生成目录

1.上一篇博客虽然简单实现了自动处理依赖关系,但是生成的各种临时文件都混在一起,太乱了。...假定我们的源文件放在src目录,头文件放在inc目录,.o文件放在obj目录,.d文件放在dmk目录,Makefile和上述4个目录为同一级别。.../inc D_OBJ = obj D_MK = dmk 2.自动遍历src目录下的所有.c文件 SRC_C = $(wildcard $(D_SRC)/*.c) # wildcard...$(D_SRC)的所有子目录同时把子目录下的.c文件遍历出来 假设src目录中有a.c,b.c,则$(SRC_C) 表示 src/a.c src/b.c 3.生成所有的.o文件依赖和.d文件集合 OBJ_C...notdir (SRC_C))中的.c替换成.o,即a.o b.o addprefix表示增加前缀$(D_OBJ)/,则OBJ_C变量表示为obj/a.o obj/b.o 4.明白了上述语句之后我们可以把makefile

3.6K20

为sourceinsight添加makefile和configure文件

在用sourceinsight查看ffmpeg源码的时候,大家会发现不能查看源码中的makefile代码,即不能搜索到makefile文件。...这是因为source insight默认是不选makefile的,也没有configure这种类型的文件。...下面就说如何让sourceinsight支持查看makefile和configure代码: (1)添加makefile: 进入Options -> Document Options-> 点击Document...Type的下拉框,然后选择Make File,在右边的File Filter中,在原先的*.mak后面加上一个分号,即多个不同过滤规则以分号间隔开,再加上*makefile,变成*.mak;*makefile...(2)添加configure: 点击 Add Type,填入新文件类型的名字configure,File Filter中写上*configure;configure*,再选中下面的Include when

1K20

浅谈内核的Makefile、Kconfig和.config文件

Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和...Makefile、Kconfig、.config有关,下面简单谈谈Makefile、Kconfig和.config。...三者的作用: 简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜。 Makefile:一个文本形式的文件,编译源文件的方法。...三者的语法 Makefile 参考:linux-3.4.2/drivers/Makefile 作用:用来定义哪些内容作为模块编译,哪些条件编译等。子目录Makefile被顶层Makefile包含。...步骤: (1)在drivers目录下新建hello文件夹,里面实现hello.c、Makefile、Kconfig。

2.9K31

makefile

前言 这几天的实验让我觉得有必要学习一下makefile 参考博客:博客 会不会写makefile,从一个侧面说明了一个人是否具有完成大型工程的能力 makefile带来的好处是自动化编译 规则...上述make的工作方式 make寻找名为makefile或者Makefile文件 寻找第一个目标文件,上述例子edit为最终的目标文件 如果edit文件不存在,那么make会寻找edit后的.o文件,...,但不要管,继续clean makefile文件系统 如果你不想使用makefile或者Makefile文件名,可以用make -f file,file是你的文件名。...读入被include的其它Makefile。 初始化文件中的变量。 推导隐晦规则,并分析所有规则。 为所有的目标文件创建依赖关系链。 根据依赖关系,决定哪些目标要重新生成。 执行生成命令。...文件,上级的makefile变量可以传到下一级: export ; 传递所有变量的话只需一个export,不需要任何变量名称 变量 变量可以使用变量: foo=$(bar)bar=$(ugh

1K20

makefile

Makefile是按照某种脚本语法编写的文本文件,而GNU make能够对Makefile中指令进行解释并执行编译操作。...Makefile文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。...2、Makefile的基本内容 Makefile一般包括包含:显式规则、变量定义、隐含规则、文件指示和注释等五个内容。 (1)显式规则:显式规则说明如何生成一个或多个的目标文件。...这是由Makefile的书写者明显指出,要生成的文件文件的依赖文件,生成的命令。...make命令,GNU make找寻默认的Makefile的规则是在当前目录下依次找三个文件——“GNUmakefile”、“makefile”和“Makefile”。

1.9K00

Linux工具入门:make工具与Makefile文件

make工具通过一个称为Makefile文件来完成并自动维护编译工作,Makefile文件描述了整个工程的编译、连接规则。 2. Makefile文件 Makefile描述了整个工程的编译连接规则。...如果DEPENDENCIES中有一个或多个文件更新的话,COMMAND就要执行,这就是Makefile最核心的内容。 3....也可以生成指定的目标: $ make add.o 【指定只生成add.o文件Makefile文件的名字不一定得命名为“Makefile”或"makefile",使用其他名字也是可以的。...Makefile 自动化变量 从上面的Makefile文件我们发现一些问题:有时候目标文件的依赖列表过长,或者命令重复书写。利用Makefile自动化变量可以解决这个问题。...选项名 作用 $@ 规则的目标文件名 $< 规则的第一个依赖文件名 $^ 规则的所有依赖文件列表 刚才的Makefile文件,我们可以改写为: main:main.o add.o sub.o

3.4K40

Linux工具入门:make工具与Makefile文件

make工具通过一个称为Makefile文件来完成并自动维护编译工作,Makefile文件描述了整个工程的编译、连接规则。 回到顶部 2....Makefile文件 Makefile描述了整个工程的编译连接规则。Makefile的基本规则为: TARGET...: DEPENDENCIES... COMMAND ......也可以生成指定的目标: $ make add.o 【指定只生成add.o文件Makefile文件的名字不一定得命名为“Makefile”或"makefile",使用其他名字也是可以的。...Makefile 自动化变量 从上面的Makefile文件我们发现一些问题:有时候目标文件的依赖列表过长,或者命令重复书写。利用Makefile自动化变量可以解决这个问题。...选项名 作用 $@ 规则的目标文件名 $< 规则的第一个依赖文件名 $^ 规则的所有依赖文件列表 刚才的Makefile文件,我们可以改写为: main:main.o add.o sub.o

3K40

5个编写高效Makefile文件的最佳实践

在软件开发过程中,Makefile是一个非常重要的工具,它可以帮助我们自动化构建、编译、测试和部署。然而,编写高效的Makefile文件并不是一件容易的事情。...在本文中,我们将讨论如何编写高效的Makefile文件,以提高我们的开发效率和产品质量 --- 确定目标 在编写Makefile文件之前,我们需要明确我们的目标是什么。...也就是说,哪些文件需要在哪些文件之前构建? 我们需要定义哪些规则来构建这些文件?这些规则应该包括什么? 一旦我们确定了这些问题,我们就可以编写Makefile文件并开始构建我们的项目。...例如,$@代表目标文件名,$<代表第一个依赖文件名。这些自动变量可以使我们的Makefile文件更加简洁和易于维护。 此外,我们可以使用其他自动变量来进一步简化我们的Makefile。...比如说,我们可以考虑在Makefile文件中添加一些注释,以帮助其他人更好地理解我们的Makefile

27020
领券