一、Makefile简介
Makefile是什么,能做什么用,为什么要用?
定义编译规则、自动化编译、提高效率
组织文件
Makefile由一组规则(Rule)组成,每条规则的格式是:
例如:
依赖关系如下图:
注意:
(1) 当我们为了执行命令而非创建目标文件时,就会使用伪目标比如 clean,伪目标总是被执行。"....
分类:
其他好文 时间:
2015-01-23 16:30:28
阅读次数:
190
有如下的源代码树:
根目录
|---makefile
|----|include|
| |___myutil.h
|___|src|
|----myutil.c
|__main.c
各文件内容如下:
main.c:
#include
#include "myutil.h"
int main(void) {...
分类:
其他好文 时间:
2015-01-22 23:25:03
阅读次数:
288
2015.1.22c高级的环境搭建:GCC编译器:全称 GUN CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定GCC编译分为四个步骤:(用WC命令可以分别查看每个阶段代码的大小,可以比较一下,ls -l 也能看出大...
分类:
数据库 时间:
2015-01-22 23:01:26
阅读次数:
447
makefile 的调试有点像魔法。可惜,并不存在makefile 调试器之类的东西可用来查看特定规则是如何被求值的,或某个变量是如何被扩展的。相反,大部分的调试过程只是在执行输出的动作以及查看makefile。事实上,GNU make 提供了若干可以协助调试的内置函数以及命令行选项。用来调试mak...
分类:
其他好文 时间:
2015-01-22 19:54:17
阅读次数:
288
上例子:all:gao @echo "final".DEFAULT: @echo "In default" 由于 gao 是一个前提条件,但是 makefile中没有一个名字为 gao的目的。所以符合 .DEFAULT 目的的执行条件。故执行结果为:In defaultfina...
分类:
其他好文 时间:
2015-01-22 17:12:38
阅读次数:
192
http://blog.csdn.net/edisonlg/article/details/71716411MakefileGNU make的工作分为两个阶段。在第一阶段,make读取makefile文件、内置变量及其值、隐含规则和具体规则、构造所有目标的依赖关系以及所有目标各自的依赖等。在第二阶段...
分类:
其他好文 时间:
2015-01-22 17:05:43
阅读次数:
207
EXTRA_CFLAGS += -D 与CONFIG_ =y
1.
假如定义一个宏CONFIG_DEBUG
在.c里面定义为:#define CONFIG_DEBUG
在makefile里定义为: CONFIG_DEBUG=y
假如说我们想在makefile里为.c文件进入一个宏定义,就用EXTRA_CFLAGS += DCONFIG_DEBUG( 等价于在.c文件里定义#define...
分类:
其他好文 时间:
2015-01-22 15:29:03
阅读次数:
160
下面是我编写内核模块 对应的一个makefile文件——————————————————————————————————————————————————————1ifneq ($(KERNELRELEASE),)2obj-m := hello.o calculate.o3else45 KDIR :=...
分类:
其他好文 时间:
2015-01-22 15:23:24
阅读次数:
154
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直...
分类:
其他好文 时间:
2015-01-22 01:36:47
阅读次数:
174
1.建立一个可下载应用模块项目2.添加所有源文件到项目中3.修改该项目的Makefile:27行DEFAULT_RULE = Project0.out下面加入 ARCHIVE = libxxxx.a xxxx是模块的名字,注意命名规则是 lib+模块名+.a否则系统不认4.修改\To...
分类:
其他好文 时间:
2015-01-21 01:07:10
阅读次数:
293