Linux编程GCC命令Makefile文件编写.ppt

上传人:sccc 文档编号:5339932 上传时间:2023-06-27 格式:PPT 页数:32 大小:762.51KB
返回 下载 相关 举报
Linux编程GCC命令Makefile文件编写.ppt_第1页
第1页 / 共32页
Linux编程GCC命令Makefile文件编写.ppt_第2页
第2页 / 共32页
Linux编程GCC命令Makefile文件编写.ppt_第3页
第3页 / 共32页
Linux编程GCC命令Makefile文件编写.ppt_第4页
第4页 / 共32页
Linux编程GCC命令Makefile文件编写.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《Linux编程GCC命令Makefile文件编写.ppt》由会员分享,可在线阅读,更多相关《Linux编程GCC命令Makefile文件编写.ppt(32页珍藏版)》请在三一办公上搜索。

1、Linux程序设计,推荐资料,LinuxC资源网站:ftp:/,目录,Linux编程概述GCCMakefile课程实践,目录,Linux编程概述GCCMakefile课程实践,Linux编程概述,Linux的编程语言开发过程Linux开发工具,Linux的编程语言,基本语言C、C+、Java脚本语言Perl、PHP、Bash,开发过程,编辑,编译,链接,运行,调试,对源代码进行编辑,VI,对源代码编译,生成目标程序,GCC,将分散的模块组成一个可执行的整体,运行编译好的程序./+目标文件名,调试运行时的错误GDB,链接-continue,函数库分为静态库和动态库。静态库:链接时,静态库的文件代

2、码会被拷贝到可执行文件中。动态库:链接时,动态库的代码不会被加入可执行文件中,而是在程序被执行的时候加载。,Linux开发工具,编辑工具VI编译工具GCC,目录,Linux编程概述GCCMakefile课程实践,GCC,简介基本规则常用参数实例分析,简介1/3,GCC概述gcc是一个强大的工具集合,它包含了预处理器,编译器,汇编器,链接器等组件。它会在需要的时候调用其他组件。输入文件的类型和传递给gcc的参数决定了gcc调用具体的哪些组件。对于开发者,它提供的足够多的参数,可以让开发者全面控制代码的生成,这对嵌入式系统级的软件开发非常重要他可以处理C、C+、Fortan、Pascal、Obje

3、ctive-C、Java、Ada等。,简介2/4,简介3/4,GCC的历史1984,FSF建立,GNU Project:开放系统支撑软件1985,GCC项目启动1987,GCC 1.0 release,C compiler1991,Linux项目开始发布1992,GCC2.0 release,C/C+1994,Linux1.0 release1997,EGCS。Architecture Related Optimization and C+support2001,GCC3.0 release,EGCS Merged,Multi Languages/targets2005,GCC4.0 rele

4、ase,IR Enhanced2007,GCC4.2 release,OpenMP support,简介4/4,GCC的特点支持多种编程语言-C/C+/Fortan/JAVA可移植性强:主要采用C语言编写交叉支持能力强Build,host and target处理器支持多X86/ia/MIPS/ARM/SPARC/应用范围广高性能计算、商用服务器、PC、嵌入式系统模块化设计前端+中间表示|后端,松耦合,基本规则,GCC的命令格式gcc options infile.c为后缀的文件,C语言源代码文件;.o为后缀的文件,是编译后的目标文件.s为后缀的文件,是汇编语言源代码文件;,GCC常用参数介绍

5、1/2,常用选项:-c 编译为目标文件,不连接库-S 编译为汇编代码-E 预处理.预处理之后的代码将送往标准输出-Wwarn.设置警告,可以设置的警告开关很多,通常用-Wall开启所有的警告-O level:设置优化级别,level可以是0,1,2,3或者s,默认为-O0,即不进行优化处理.-Dname=definition:在命令行上定义宏,有两种方式,-Dname或者-Dname=definition.在命令行上设置宏定义的目的主要是为了在调试的时候设定一些开关,而在发布的时候再关闭或者打开这些开关即可,当然宏定义也用来对代码进行有选择地编译.另外也还有其他的一些作用.,GCC常用参数介绍

6、1/2,-Uname 取消宏定义name,作用和上面的正好相反.-Idir.把dir加到头文件的搜索路径中,而且gcc会在搜索标准头文件之前先搜索dir.-llibrary 在连接的时候搜索library库.库是一些archieve文件-其成员是目标文件.如果有文件引用library,library在命令行的位置应该在那个文件之后,因此,越底层的库越要放在后面.比如如果你要连接pcap库,那么你就需要使用-lpcap对源文件进行编译.-Ldir.把dir加到库文件的搜索路径中,而且gcc会在搜索标准库文件之前先搜索dir.-g 产生调试信息.GDB能够使用这些调试信息。-o outfile 指

7、定输出文件的文件名,默认为a.out,GCC使用例子,Example1(编译一个文件)gcc-o first first.c Example2(编译两个文件)gcc c power.cgcc c compute.cgcc power.o compute.o o power-lm,目录,Linux编程概述GCCMakefile课程实践,Makefile,简介Make的语法及常用参数Makefile的基本结构实例分析,简介1/2,What is Make?Make 是用于自动编译、链接程序的实用工具。Make的优点“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了

8、软件开发的效率。,简介2/2,Make的工作原理当输入make命令之后,会默认的在当前目录下寻找名为“Makefile”或“makefile”的文件。寻找到文件之后,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。make只管文件的依赖性,即,如果在我找了依赖关系之后,冒号后面的文件还是不在,那么对不起,我就不工作啦。,Make的语法及常用参数,make的使用make options target常见的选项:-f FIL

9、E 以指定的FILE 文件作为makefile。-n 只打印要执行的命令,但不执行这些命令。-s 在执行命令时不显示命令。-d 显示调试信息,Makefile的基本结构1/2,一个简单的Makefile文件包含一系列的“规则”,其样式如下:目标(target):依赖(prerequiries)命令(command),Makefile的基本结构2/2,目标(target)通常是要产生的文件的名称,目标的例子是可执行文件或OBJ文件。目标也可是一个执行的动作名称,这样的目标通常称为伪目标(PHONY)诸如clean。依赖是用来输入从而产生目标的文件,一个目标经常有几个依赖。命令是Make执行的动作

10、,一个规则可以含有几个命令,每个命令占一行。每个命令行前面必须是一个Tab字符,即命令行第一个字符是Tab。这是不小心容易出错的地方。,实例分析1/2,Eample1编译一个文件的makefile文件$cat makefilepower:power.cgcc power.c-o power-lm,实例分析2/2,Eample2编译两个文件的makefile文件$cat makefilepower:power.o compute.ogcc power.o compute.o-o power-lmpower.o:power.cgcc-c power.ccompute.o:compute.cgcc-

11、c compute.c,目录,Linux编程概述GCCMakefile课程实践,课程实践1/2,Lab1:编写一个程序,完成以下要求该程序包含3个文件,并且完成对圆的面积和周长进行计算的功能,其中每个文件包含的内容如下:第一个文件,包含主函数,提示用户输入半径,并计算相应的结果。第二个文件,包含计算圆的面积的函数第三个文件,包含计算圆的周长的函数Lab2:编写相应的makefile,并且编译运行该程序,课程实践2/2,Lab3:分析一下的makefile文件,并回答以下问题。CC=gccOPTIONS=-x04 oOBJECTS=main.o input.o compute.oSOURCES=

12、main.c input.c compute.cHEADERS=main.h input.c compute.hpower:main.c$(OBJECTS)$(CC)$(OPTIONS)power$(OBJECTS)lmmain.o:main.c$(HEADERS)input.o:input.c input.hcompute.o:compute.c compute.hall.tar:$(SOUCES)$(HEADERS)makefiletar-cvf$(SOURCES)$(headers)makefile all.tarclean:rm*.o,问题一:这一部分有什么意义,问题二:这一句命令的意义,问题三:这一句命令的意义,问题四:如何执行clean的操作(命令格式),The End,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号