makefile基础

1、除了开头的依赖关系,后面的命令行每行需要用TAB开头

2、注释,C是/*  */或//,汇编是@, makefile是#

3、makefile中使用变量:在最开始(依赖关系前)加上,例如:objects=a.o  b.o  c.o  d.o  e.o  ,引用是需要$(变量)形式,例如:$(objects),直接就相当于写了那些

4、每个makefile中都应该清空目标文件(.o和执行文件):clean:   rm  文件名  即可  ,基本clean从来放在文件的最后

5、文件名可以是Makefile或makefile, 也可以使用Make.文件名  这种格式

6、调用其它makefile, 用法:include  文件名

7、makefile对命令的长短没有限制,如果命令太长,那么久用反斜杠  \    换行

8、

时间: 2024-10-25 13:41:37

makefile基础的相关文章

Linux学习二:Makefile基础

文首感谢http://www.chinaunix.net 作者:gunguymadman的分享 makefile关系到了整个工程的编译规则.一个工程中的源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令. 1.程序的编译和链接一般来说,无论是C.C++.还是pas(pascal语言),

C编译: makefile基础

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在编译一个大型项目的时候,往往有很多目标文件.库文件.头文件以及最终的可执行文件.不同的文件之间存在依赖关系(dependency).比如当我们使用下面命令编译时: $gcc -c -o test.o test.c $gcc -o helloworld test.o 可执行文件helloworld依赖于test.o进行编译的,而test.o依赖于test.c. 依赖关系 在我们编

makefile 基础知识

[email protected]    目标文件名 $< 第一个依赖文件名 $^ 规则所有依赖文件列表 如果不想让执行语句被打印出来,就在语句前面加上@符号 模式规则 %.o:%.c 后缀规则 .c.o 生成单进程的Makefile PHONY:clean OBJECTS = main.o add.o sub.oCFLAGS = -Wall -gCC = gcc app:$(OBJECTS) $(CC) $(CFLAGS) $^ -o [email protected] %.o:%.c$(CC

makefile基础和工作常用点补充

一.Makefile简介 Makefile是什么,能做什么用,为什么要用? 定义编译规则.自动化编译.提高效率 组织文件 Makefile由一组规则(Rule)组成,每条规则的格式是: 例如: 依赖关系如下图: 注意: (1) 当我们为了执行命令而非创建目标文件时,就会使用伪目标比如 clean,伪目标总是被执行.".PHONY" 的作用是避免和当前 目录下的文件名冲突 (可能引发隐式规则). (2) 使用 "-" 前缀可以忽略命令错误,比如创建已有的路径: &qu

第22章 Makefile基础

一.自动处理头文件的依赖关系 在Makefile中插入如下代码: include $(sources:.c=.d) %.d: %.c set -e; rm -f [email protected]; $(CC) -MM $(CPPFLAGS) $< > [email protected]$$$$; sed 's,\($*\)\.o[ :]*,\1.o [email protected] : ,g' < [email protected]$$$$ > [email protected

makefile基础_1

?wildcard: 搜索当前目录下所有的.c文件. ?addprefix $(TEST_DIR)/,$(TEST)) //给$(TEST)加前缀路径 [email protected]: 目标变量. $^: 目标依赖 ?.PONHY: clean :伪目标,会被无条件执行. ?自动产生依赖:Gcc –M命 令生成该文件要依赖的文件. Gcc –MM命 令生成该文件要依赖的文件,不显示系统库文件. ?make并发执行命令:make -j3 #同时开启3个进程去编译 makefile中的每个命令,

补基础之shell 和makefile

2.2.1.shell介绍 (1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说他是人机交互的一种方式 (2)我们可以使用shell和操作系统.uboot等软件系统进行交互.具体来说就是我们通过shell给软件系统输入命令,然后回车执行,执行完后会回到shell命令行再次输入命令执行 (3)我们上述的操作方式一般情况下工作很好,但是有一个缺陷.譬如我们要在linux 下创建一个文件a.c,可以touch a.c,但是如果我现在要在linux下创建100个文件,分别是a1.c  a

gcc编译, gdb调试, makefile写法

//test.c: #include <stdio.h> int main(void) { printf("hello world!"); return 0; } ====================================== 一. 1. 编译过程:预处理(processing)->编译(compilation)->汇编(assembly)->Linking 2. 预处理: gcc -E test.c -o test.i / gcc -E t

【嵌入式Linux+ARM】阶段性总结(Makefile &amp; 链接文件)

1.arm-linux-ld arm-linux-ld 的 -T 选项用来指定链接地址: -Ttext--指定代码段 -Tdata--指定数据段 -Tbss--指定bss段 arm-linux-ld -Ttext 0x30000000 -g led_on.o -o led_on 也可以用来指定一个链接文本,如*.lds ,举例如下: SECTIONS{ . = 0x30000000 //设置当前运行地址 .text : {*(.text)}