第3讲Linux编程环境讲述.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲Linux编程环境讲述

1.Makefile书写规则 Makefile规则格式: 目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如clean。 一个或多个依赖文件(dependency)列表,通常是编译目标文件所需要的其他文件。 一系列命今(command),是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,且每个命令行起始字符必须为TAB字符。 Makefile文件的规则 target : prerequisites 依赖关系 TAB command 命令 GNU make命令和makefile 文件 显式规则 隐式规则 文件指示。 注释。 #Makefile main:main.o hello1.o hello2.o gcc -o main main.o hello1.o hello2.o main.o:main.c hello1.h hello 2.h gcc -c main.c hello 1.o: hello 1.c hello 1.h gcc -c hello1.c hello2.o: hello2.c hello2.h gcc -c hello2.c clean: rm main hello1.o hello2.o main.o 执行make命令:make target target是Makefile文件中定义的目标之一,若省略target,make就将生成Makefile文件中定义的第一个目标。 make 等价于 make main 因为main是Makefile文件中定义的第一个目标,make首先将其读入,然后从第一行开始执行,把第一个目标test作为它的最终目标,所有后面的目标的更新都会影响到main的更新 Make的执行 2.伪目标 伪目标又称假想目标,如: clean: rm *.o temp 这里并不生成“clean”这个文件。“伪目标”并不是一个文件,只是一个标签,由于“伪目标”不是文件,所以make无法生成它的依赖关系和决定它是否要执行。 可使用“make clean”来使用该目标。 如果你的Makefile需要生成若干个可执行文件,可把所有的目标文件都写在一个Makefile中,可声明了一个“all”的伪目标。 声明了一个“all”的伪目标 例如: all : prog1 prog2 prog3 prog1 : prog1.o utils.o gcc -o prog1 prog1.o utils.o prog2 : prog2.o gcc -o prog2 prog2.o prog3 : prog3.o sort.o utils.o gcc -o prog3 prog3.o sort.o utils.o 隐式规则 根据后缀为.c的源文件使用gcc命令自动更新或者产生同名的.o文件 规则中略去产生目标文件的命令。同时,目标所依赖的文件列表中的.c文件亦可省略 hello2.o: hello2.c hello2.h gcc -c hello2.c 可以简化为: hello2.o:hello2.h Makefile变量 环境变量: (1)存储文件名列表。 (2)存储可执行文件名。 (3)存储编译器标识。 (4)存储参数列表。 Makefile中的变量 obj= main.o hello1.o hello2.o main: $(obj) gcc -o main $(obj) Makefile变量 内部变量: $@---当前规则的目标文件名 $ --成依赖列表中第一个依赖文件 $^ --整个依赖的列表 $^:以空格分隔的所有的依赖文件 $+:与$^功能相似,但包含有重复的依赖文件 自动变量简化后的Makefile main:main.o hello1.o hello2.o gcc -o $@ $^ main.o:main.c hello1.h hello 2.h gcc -c $ hello 1.o: hello 1.c hello 1.h gcc -c $ hello2.o: hello2.c hello2.h gcc -c $ clean: rm main hello1.o hello2.o main.o * C语言折中了与硬件相近和可以屏蔽不同体系结构相关两方面的,最适合嵌入式系统使用。 * 第3讲 Linux编程环境 第3讲 Linux编程环境 3.1 gcc编译器 3.2 gdb调试器 3.3 make 项目管理工具 3.1 Linux编程环境 编译 汇编 链接 加载程序 嵌入式应用

文档评论(0)

441113422 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档