摘要:1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来...
阅读全文
随笔分类 - makefile
摘要:使用函数:在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ ...
阅读全文
摘要:如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;...
阅读全文
摘要:前言Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程。Makefile模板首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖。CC = gcc CFLAGS = -Wall -OINCLUDEFLAGS = LDFLA...
阅读全文
摘要:虽然以前对Makefile有个基本概念,但是真正到自己去写一个哪怕是简单的Makefile时也会遇到不少的麻烦。 现在我有如下文件 dList.h dList.c memory.c debug.c debug.h test.c aaron.h 其中包含关系如下: aaron.h-->dList.h ...
阅读全文
摘要:现在我们的Makefile写成这样:all: mainmain: main.o stack.o maze.ogcc $^ -o $@main.o: main.h stack.h maze.hstack.o: stack.h main.hmaze.o: maze.h main.hclean:-rm m...
阅读全文
摘要:今天写了个层次化的Makefile模版,用来自动化编译项目,这个模版应当包含以下功能:适用于层次化结构,Makefile主要内容都放在顶层目录下的Makefile.env中,子层Makefile包含这个Makefile.env,只要增加一些变量就可以编译,特别方便添加新的功能模块自动解析头文件依赖我...
阅读全文
摘要:1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和s...
阅读全文
摘要:本文推荐了一个用于对C/C++程序进行编译和连接以产生可执行程序的通用Makefile。在使用Makefile之前,只需对它进行一些简单的设置即可;而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动Makefile。因此,即便是一个没有学习过Makefile书写规则的人,也可以为自己的C/...
阅读全文
摘要:一 makefile的作用 Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中记录有文件的信息,在make时会决定在链接的时候需要重新编译哪些文件。Makefile的宗旨就是:让编译器知道要编译...
阅读全文