http://www.cnblogs.com/pengdonglin137/p/3801060.html 在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢? 新建一个Makefile,内容为:ifdef DEFINE_VRE    VRE = “Hello World!”elseendif ifeq ($(OPT),define)    VRE ?= “Hello World! First!”endif ifeq ($(OPT),add)    VRE…
首先我们先创建两个简单的文件: main.c #include <stdio.h> extern void hi_fun(); int main() { printf("hello world\r\n"); hi_fun(); return 0; } extern.c #include <stdio.h> void hi_fun() { printf("Hi zhuangzb\r\n"); } Makefile文件: main:main.o…
一.Makefile的作用和意义(1)工程项目中c文件太多管理不方便,因此用Makefile来做项目管理,方便编译链接过程.(2)uboot和linux kernel本质上都是C语言的项目,都由很多个文件组成,因此都需要通过Makefile来管理.所以要分析uboot必须对Makefile有所了解. 2.目标.依赖.命令(1)目标就是我们要去make xxx的那个xxx,就是我们最终要生成的东西.(2)依赖是用来生成目录的原材料(3)命令就是加工方法,所以make xxx的过程其实就是使用命令将…
                                C++笔记       2007-3-22 1. 程序 —— 可执行文件,人发送给计算机的一组指令.         硬件指令是二进制,方便与数字电路和指令集转换. 2. 我们学的是符合ANSI规范的标准C++,有可移植性 3. 进制:十进制 -> 二进制:除2取余 88 -> 0101 1000        二进制 -> 十进制 : 各个位与权重的乘机,之后的总和        0101 1000 -> 8+16+…
https://blog.csdn.net/twc829/article/details/72729799 make命令是一个常用的编译命令,尤其在C/C++开发中,make命令通过makefile文件中描述源程序之间的依赖关系进行自动编译: makefile文件是按照规定格式编写,需说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系: 首次执行make命令时,编译所有相关文件,之后再执行make命令时,以增量方式进行编译,即只对修改的源文件相关的目标文件进行编译: 注:…
https://www.cnblogs.com/jrglinux/p/6964169.html 关键是如何写Makefile.am  其他的交给 自动工具完成 添加一个 很好的博客 学习下 https://www.cnblogs.com/lixinjie/p/a-answer-about-thread-safety-in-a-interview.html lesson 0 什么是Autotools Automake Autotools Cmake Scons 自动创建Makefile 大型项目很…
目录 前言 概念 Chapter 2:介绍 2.1 makefile的规则 2.3 make 是如何工作的 ** 2.5 让 make 自动推导 2.8 Makefile 里面有什么 2.9 Makefile 的文件名 2.10 引用其它的Makefile 寻找其它的 Makefile 路径及顺序 2.11 环境变量 MAKEFILES 2.12 make 的工作方式 参考 书籍 前言 本笔记主要记录Makefile一些概念要点. 本笔记为提取性笔记,章节与<跟我一起写Makefile>同步,…
目录 前言 概念 Chapter 3:书写规则 3.3 在规则中使用通配符 3.4 文件搜索 3.8 自动生成依赖性 原理 * 直接解析例子 ** sed 命令 参考 书籍 前言 本笔记主要记录Makefile一些概念要点. 本笔记为提取性笔记,章节与<跟我一起写Makefile>同步,所以会看到有些小标题会跳过. 概念 Chapter 3:书写规则 3.3 在规则中使用通配符 make 支持三个通配符: * 任意长度的任意字符 ? 长度为一的任意字符 ~ (以例子说明) ~/test 表示当…
Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开发,但我还没安装VS2010,我想在VS2008下编译这些代码):另一方面源码在服务器端编译的话,使用IDE的方式编译还是不太方便. 本文主要分为三部分:第一部分讲述namke工具使用makefile的用法:第二部分讲述makefile的主要语法:…
Makefile的学习笔记 标签: makefilewildcard扩展includeshellfile 2012-01-03 00:07 9586人阅读 评论(2) 收藏 举报  分类: Linux(16)  版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   1    Makefile GNU make的工作分为两个阶段.在第一阶段,make读取makefile文件.内置变量及其值.隐含规则和具体规则.构造所有目标的依赖关系以及所有目标各自的依赖等.在第二阶段,m…
Befroe Beginning. 在设置暑假的plan ,关于Linux的书籍如今在看的是ALP和Linux高级程序设计(杨宗德)第三版.在计划中的是Linux高级环境编程. 如今開始关于Linux程序设计的第一篇学习笔记. 本来打算把名字写成教程,只是认为自己全然是新手在自学,还是写学习笔记比較负责和适合. 希望能够一起学习进步. 引入 首先我们如果这样一个场景.我们有一个程序包括了三个文件,各自是源代码文件main_plus,c和function_plus.c以及头文件mydefine_p…
本文转自:http://blog.csdn.net/clever101/article/details/8286066 上次我们学习了怎么用Makefile编译一个控制台工程.这次我们学习一下如何使用Makefile来编译一个win 32的GUI程序.win 32的GUI程序其编译过程大部分和控制台程序一样,不同的是多了一步RC编译器将资源文件编译成res文件,然后在最后一步链接中需要把这个res文件链接到exe文件中. 好,现在让我们在实践中学习吧.新建一个win32 应用程序工程——Win3…
Makefile速查笔记 Makefile中的几个调试方法 一. 使用 info/warning/error 增加调试信息 a. $(info "some text")打印 "some text", 但是不能打印当前makefile文件名和行号. b. $(warning "some text")打印 "some text", 并打印当前makefile文件名和行号. c. $(error "error: this…
Makefile中几种变量赋值运算符: =      :最简单的赋值 :=     :一般也是赋值 以上这两个大部分情况下效果是一样的,但是有时候不一样. 用 = 赋值的变量,在被解析时他的值取决于最后一次赋值时的值,所以看变量引用的值时不能只往前面看,还要往后面看. 用 := 来赋值的,则是就地直接解析,只用往前看即可. ?=     : 如果变量前面并没有赋值过则执行这条赋值,如果前面已经赋值过了则本行被忽略. += 用来给一个已经赋值的变量接续赋值,意思就是把这次的值加到原来的值的后面,有…
目录 笔记发博词 参考 笔记发博词 本系列笔记主要记录学了<跟我一起写Makefile>后的一些笔记 由于<跟我一起写Makefile>已经写得很详细了,所以我只是提取其中重要的内容出来而已. 博主还是建议读者观看原版的<GUN Makefile>和<跟我一起写Makefile>. 参考 <GUN Makefile> <跟我一起写Makefile>…
1.make的递归过程指的是: 在Makefile中使用"make"作为一个命令来执行本身或者其它makefile文件的过程. 2.递归的意义: 当前目录下存在一个"subdir"子目录,在这个子目录中有描述此目录编译规则的makefile文件,在执行make时需要从上层目录(当前目录)开始并完成它所有子目录的编   译.那么在当前目录下可以使用这样一个规则来实现对这个子目录的编译. 3.用法举例: 我们有一个子目录叫subdir,这个目录下有个Makefile文件…
1.变量的引用方式: "$(变量名)"或者"¥{变量名}" 例如: ${Objs}就是取变量Objs的值 注意: 当变量名为单字符是可以采用:"$a"的方式引用,多字符则不行 2.变量定义的两种方法,即对变量进行赋值: (1)使用递归展开式变量"=" 左侧为变量名,右侧是变量的值,该方法的优点是右侧变量的值可以定义在文件的任何一处,也就是说,右侧中的变量不一定非要是已定义好的值,其也可以使用后        面定义的值. (2…
1/ 编写简单makefile test_out: test.o g++ test.o -o test_out test.o: test.cpp test.h g++ -c test.cpp test.h .PHONY:clean #可有可无: 说明clean是个伪目标文件 clean: rm test_out test.o test.h.gch test_out 为输出文件  由目标文件讲过链接生成,链接的命令是下面一行代码. 注: makefile中命令 必须以 tab键开头,否则会报错 t…
1.Makefile中命令前的@和-符号 如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止,不再执行后续命令,但如果命令前面加了-号,即使这条命令出错,make也会继续执行后续命令. 通常rm命令和mkdir命令前面要加-号,因为rm要删除的文件可能不存在,mkdir要创建的目录可能已存在,这两个命令都有可能出错,但这种错误是应该忽略的. 来源:…
0.前言     从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法.       例说makefile分为以下几个部分,更多内容请参考[例说makefile索引博文] 1.只有单个C文件     2.含有多个C文件         3.需要包括头文件路径     4.增加宏定义     5.…
Makefile文件语法 行解析:命令按行解析 命令行的行首字符为Tab键,其他行的行首字符不得为Tab键,但可以使用多个空格缩进 换行:命令太长时,行尾使用"\"换行 注释:行首字符为"#"的文本行 关闭回显:在行首字符后和命令前添加"@" 未关闭回显时,make会首先回显(打印)命令,然后执行该命令 通常仅在注释和纯显示的echo命令前使用此功能 include filename:包含其他文件 处理模式与c/c++类似 行首加"-&…
使用gcc编译C语言源码 在Linux系统中,C语言源码需要用gcc编译为二进制可执行文件,才能够运行. $ gcc test.c -o test 这句命令就将test.c文件编译为test二进制可执行文件. $ ./test 如此可以直接执行编译后的test二进制可执行文件. 如何编译多个.c文件 例1 需要将test1.c.test2.c.test3.c合并编译为一个test可执行文件. 一种办法是: $ gcc test1.c test2.c test3.c -o test 这个办法的缺陷…
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ======================================================== automake和autoconf 生成大型项目的makefile编写 http://blog.csdn.net/fuli1215/article/details/6399175 使用GNU Autoconf/Automake创建Makefile…
makefile make命令:负责c/c++程序编译与链接 make根据指定命令进行建构 建构规则文件:GNUmakefile , makefile,Makefile makefile 文件格式 makefile 语法 --基本语法,变量,条件判断,循环,函数 makefile 文件的基本格式 target...:prerequisites... [tab键]  commands makefile文件的规则 makefile 文件由一系列规则构成 规则目的:建构目标的先决条件是什么以及如何构建…
ls -l 查看文件详细信息 1.gcc -E test.c -o test.i//预编译gedit test.i //查看:高级C 2.gcc -Wall -S test.i -o test.s//编译显示所有警告gedit test.s //查看:介于C与汇编之间的 3. as test.s -o test.o nano test.o//强行打开是乱码 一步到位:gcc -c test.c gcc test.o ./a.out five.c,five.h//新建 gcc -o test te…
http://blog.csdn.net/leexiang_han/article/details/9274229   学习了几天的makefile的嵌套调用编写也有一些心得,先声明,我也是初学者写文章只是为了更好的交流,也希望避免其他刚入Linux编程大门的童鞋少走弯路.以下都是经过我多次测试并跑成功的,如有偏差还请见谅与指正. 我有两个练习例子: ①先来说说第一个例子:生成一个可执行文件edit top dir(根目录)下有源文件main.c.makefile(主).文件夹sub1.文件夹s…
本程序的Makefile分为3类:1. 顶层目录的Makefile2. 顶层目录的Makefile.build3. 各级子目录的Makefile 一.各级子目录的Makefile: 它最简单,形式如下:obj-y += file.oobj-y += subdir/ "obj-y += file.o"表示把当前目录下的file.c编进程序里, "obj-y += subdir/"表示要进入subdir这个子目录下去寻找文件来编进程序里,是哪些文件由subdir目录下的…
我的第一个makefile 最近学到了makefile的文件的编写.makefile是一个能达到方便编译链接生成目标程序的文件, make确实很方便,在写makefile的过程也能更好的理解gcc编译器执行生成可执行文件的全过程.这里是我 的第一个makefile的编写. makefile根据依赖,逐步解析生成目标文件. 首先指定all:ef  生成最终目标文件ef 生成ef的前提是依赖ef:total.o sum.o mul.o 三个目标文件. 并且我们要指定gcc的执行 gcc -o ef…
一个简单的Makefile描述规则组成: TARGET...:PREREQUISITES... COMMANDS... ... target:规则的目标.通常是程序中间或者最后要生成的文件名,也可以是伪目标. prerequisites:规则的依赖.生成规则目标所需要的文件名列表.通常一个目标依赖于一个或者多个文件. commands:规则的命令行,每条占一行,必须以[TAB]开头. GNUMake的执行过程: 第一阶段:读取所有的makefile文件(包括“MAKEFILE”变量指定的,提示符…
一,Makefile的文件名 默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”.“makefile”.“Makefile”的文件,大部分情况下,make命令都支持makefile和Makefile这两种命名.所以一般情况下都是将文件名命为这两个,没有后缀. 二,Makefile内容格式语法 目标名:依赖目标                         @命令                         @命令 三,make命令行的使用 1,通用情况:m…