【ASM C/C++】 Makefile 规则说明】的更多相关文章

1.Makefile格式 //最终目标 all: led.o //依赖 arm-linux-ld -Tled.lds -o led.elf led.o //命令 arm-linux-objcopy -O binary led.elf led.bin //命令 //目标 led.o : led.S//依赖 arm-linux-gcc -g -o led.o -c led.S //命令 .PHONY: clean //伪目标--无依赖 clean: rm *.o led.elf led.bin //…
规则语法 通常规则的语法格式如下: TARGETS : PREREQUISITES COMMAND ... 或者: TARGETS : PREREQUISITES ; COMMAND COMMAND ... 规则中" TARGETS"可以是空格分开的多个文件名,也可以是一个标签(例如:执行清空的" clean")." TARGETS"的文件名可以使用通配符,格式" A(M)"表示档案文件( Linux下的静态库.a文件)的成员…
一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个shell脚本一样,其中也可以执行操作系统的命令. Makefile规则 目标:依赖................................. tab键 命令能够执行的条件:a.目标不存在 b.依赖已更新这就是最基本的规则.标通常是要生成的文件的名称,通常是可…
makefile规则整理 实际开发中,makefile改的多,写的少. 为了后面不要在编译链接这种地方花费太多的时间,在这里系统性的整理其规则: 基本格式 TARGET : PREREQUISITES command1 command2 ... TARGET:1个目标(.o,lable,可执行文件等等) PREREQUISITES: 一个或者多个,依赖的文件 command: 任意的shell命令: 当依赖的文件中,只要有文件修改日期比TARGET的修改日期新,或者TARGET不存 在,就会触发…
make 命令会自动读取当前目录下的 Makefile 文件[31],完成相应的编译步骤.Makefile 由一组规则(Rule)组成,每条规则的格式是:target ... : prerequisites ... command1 command2 ... 目标和条件之间的关系是:欲更新目标,必须 首先更新它的所有条件;所有条件中只要有一个条件被更新了,目标也必须随 之被更新.所谓“更新”就是执行一遍规则中的命令列表,命令列表中的每条 命令必须以一个 Tab 开头,注意不能是空格,Makefi…
  前言: 大家在Windows上使用VS构建C/C++程序时,不需要自己编辑略显晦涩的Makefile文件,而对于初学者而言, 他们甚至没意识到它的存在.VS是自动生成Makefile文件, 并构建工程项目的.不可否认Visual Studio做为一款全能的IDE,它帮开发者做了很多工作,也降低了C/C++的门槛,意义非常的重大. 但作为进阶的C/C++开发者, 你是有必须了解底层编译和链接原理的. 让我们来梳理下C/C++的编译链接过程,并回顾Makefile的编写规则,最后让我们来尝试实现…
博客中关于makefile的博文数不胜数,比较经典的都很相似,下面这一片,很全面,只是很长,可以作为参考资料:http://blog.csdn.net/liang13664759/article/details/1771246. ①makefile格式,即规则. ②makefile工作原理,即栈式编译和更新.注意cc时,当前行最前边必须是tab. ③makefiel变量的使用. ④makefile隐晦规则.即自动推导功能. ⑤makefile清空目标文件的规则. ⑥makefile文件指示.即像…
target ... : prerequisites ... command ... ... 规则包含两个部分,一个是依赖关系,一个是生成目标的方法. 在 Makefile 中,规则的顺序是很重要的,因为, Makefile 中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让 make 知道你的最终目标是什么.一般来说,定义在 Makefile 中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标.如果第一条规则中的目标有很多个,那么,第一个目标会成为最终的目…
Makefile 一个规则 三要素:目标,依赖,命令     目标:依赖 命令 1.第一条规则是用来生成终极目标的规则     如果规则中的依赖不存在,向下寻找其他的规则 更新机制:比较的是目标文件和依赖文件的时间 两个函数 1)查找指定目录下,指定类型的文件     src = $(wildcard ~/aa/*.c) 2) 匹配替换函数     obj = $(patsubst %.c, %.o, $(src)) 三个自动变量 1)      $< : 规则中的第一个依赖 2)      $…
  转自:http://blog.chinaunix.net/uid-23929712-id-2650328.html   概述: make从Makefile中文件中获取模块间的依赖关系,判断哪些文件已经过时,根据这些信息make确定哪些文件需要重新编译,然后使用Makefile中的编译命令进行编译   make命令参数详解 -C dir:在读取Makefile文件前,先切换到“dir”目录下,也就是把dir作为当前目录 -d     :make执行时打印出所有的调试信息 -e     :不允许…
规则明确在什么情况下,使用什么方法,重构文件,该文件称为目标. make的唯一目的是重构终极目标.终极目标默认是第一个目标. 1. 2.规则语法 TARGETS : PREREQUISITES COMMAND 或者: TARGETS : PREREQUISITES ; COMMAND COMMAND TARGETS 和 PREEQUISITES 可以是多对多的关系,但通常TARGETS 只代表单个目标. 每一行COMMAND(没有用;链接情况),make会fork一个进程去执行该命令,命令运行在…
target : prerequisites command Target 通常称作目标.它是一个目标文件,可以是Object File,也可以是执行文件.还可以是一个标签(Label).Prerequisites通常称作依赖.就是要生成那个target所依赖的文件或是目标. command也就是make需要执行的命令.(任意的Shell命令,前面一定是一个tab键) 这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件, 其生成规则定义在…
隐含规则 ———— 在 我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o] 文件,Windows下是[.obj]文件).本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来的规则. “隐含规则”也就是一种惯例,make会按照这种“惯例”心照不喧地来运行,那怕我们的Makefile中没有书写这样的规则.例如,把[.c]文件编译成[.o]文件这一规则,你根本就不用写出来,ma…
一.前言 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 二.正文 1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv) { printf("Hello Linu…
    1.源程序的编译    在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.       假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv) { printf("Hello Linux\n"): } 要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c gcc 编译器就会为我们生成一个hello的可执行文件.执…
在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则:最基本的编写规则的方法是从最终的源程序文件一个一个的查看源码文件.把它们要生成的目标文件作为目标,而C语言源码文件和源码文件包含的头文件作为依赖文件生成规则.但是必须去分析源码文件的嵌套关系,如需要把某些头文件包含的头文件也作为依赖文件,当头文件很多时,这样很繁琐,正确性也不高. gcc编译器可以自动的从源码文件中产生文件的相互依赖关系,当编译器编译每一个源码文件时,它知道包含怎么样的头文件. 当使用gcc时,用-…
很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用make更新函数库文件 后序 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习. 后记,看完发现这篇文章和<Linux环境下的C编程指南>…
http://xueqi.iteye.com/blog/1567866   1.一个简单的makefile例子   假设一个程序有两个文件file1.c,file2.c,每个文件都包含head.h,生成file可执行文件   file:file1.o file2.o                  附属行(文件的依存关系)     gcc -o file1.o file2.o            命令行 file1.o:file1.c head.h     gcc -c file1.c fi…
在我们使用 Makefile 时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix 下是[.o]文件,Windows 下是[.obj]文件). 本章讲述的就是一些在 Makefile 中的"隐含的",早先约定了的,不需要我们再写出来的规则. "隐含规则"也就是一种惯例, make 会按照这种"惯例"心照不喧地来运行,那怕我们的Makefile 中没有书写这样的规则.例如,把[.c]文件编译成…
该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自一个博主,基于原博客的整理版本: https://blog.csdn.net/seven_amber/article/details/70216216 隐含规则 在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是…
ARM裸机1期加强版视频课程配套WiKi第9课第5节_Makefile的引入及规则. 文字不能完全替代视频,所以如果你看了这些文章不太懂,建议购买视频进一步学习. 视频购买地址:100ask.taobao.com. 使用keil, mdk, avr等工具编译程序时点点鼠标就可以,它的内部机制是什么?它怎么组织管理程序?怎么决定编译哪一个文件? 答:实际上keil等IDE开发工具管理程序的内部机制也是Makefile,在linux下开发裸板程序的时候,使用Makefile组织管理这些程序,本节讲解…
相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云.在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide.其实makefile并没有想象的那么难写,只要你明白了其中的原理,自己实践几次.你也可以自己写makefile,让别人对你头来羡慕的目光. 下面本人介绍一下自己的学习成果,初学阶段,欢迎大家多多指正.简单的说,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至可以在m…
makefile介绍 makefile的功能是管理源文件的编译链接,在makefile我们可以定义一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作.具体可以参考: http://blog.csdn.net/ruglcc/article/details/7814546/ http://www.cnblogs.com/liangxiaxu/archive/2012/07/31/2617384.html makefile规则 target1:…
跟我一起写 Makefile 陈皓 第一章.概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional(专业)的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要 了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具 备完成大型工…
From: http://blog.csdn.net/liang13664759/article/details/1771246 最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习. 后记,看完发现这篇文章和<Linux环境下的C编程指南>的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解.能让…
本文目的: 尝试着把makefile讲解清楚.非原创,仅仅是学习笔记和备忘录之用. makefile 的目的和好处: 一个工程中的源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令.makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译…
第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力.因为,makefile关系到了整个…
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力.因为,makefile关系到了…
最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习. 后记,看完发现这篇文章和<Linux环境下的C编程指南>的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解.能让人看懂就是好文章. 跟我一起写 Makefile 陈皓 (CSDN) 概述—— 什么是makefile?或许很多Winodws的程…
转载自:http://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂. Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 本篇博客是基于 {精华} 跟我一…