网站大量收购闲置独家精品文档,联系QQ:2885784924

嵌入式Linux开发实践教程(第2版)课件:GNU-GCC-开发教程.ppt

嵌入式Linux开发实践教程(第2版)课件:GNU-GCC-开发教程.ppt

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

gcc选项(5)-ofile指定输出文件为file.该选项不在乎GCC产生什么输出,无论是可执行文件,目标文件,汇编文件还是预处理后的C代码.由编译阶段决定,输入的格式gcc-Ehello.c-ohello.igcc-chello.i-ohello.ogcchello.c–ohello只能输出一个文件gcc选项(6)-pipe在编译过程的不同阶段间使用管道而非临时文件进行通信.在将源代码变成可执行文件的过程中,需要经过许多中间步骤,包含预处理、编译、汇编和连接。这些过程实际上是由不同的程序负责完成的。大多数情况下GCC可以为Linux程序员完成所有的后台工作,自动调用相应程序进行处理。是GCC在处理每一个源文件时,最终都需要生成好几个临时文件才能完成相应的工作,从而无形中导致处理速度变慢。例如,GCC在处理一个源文件时,可能需要一个临时文件来保存预处理的输出、一个临时文件来保存编译器的输出、一个临时文件来保存汇编器的输出,而读写这些临时文件显然需要耗费一定的时间。当软件项目变得非常庞大的时候,花费在这上面的代价可能会变得很沉重。解决的办法是,使用Linux提供的一种更加高效的通信方式—管道。它可以用来同时连接两个程序,其中一个程序的输出将被直接作为另一个程序的输入,这样就可以避免使用临时文件,但编译时却需要消耗更多的内存。gcc-pipefoo.c-ofoo

关于宏(macro)的选项-Dmacro定义宏macro,宏的内容定义为字符串`1.gcctest_m.c–D__DEBUG–otest_m-Dmacro=defn定义宏macro的内容为defn.命令行上所有的`-D选项在`-U选项之前处理.gcctest_m.c–D__DBG_NAME=hello–otest_m-Umacro取消宏macro.`-U选项在所有的`-D选项之后处理,但是优先于任何`-includegcc警告提示功能GCC包含完整的出错检查和警告提示功能,它们可以帮助Linux程序员写出更加专业和优美的代码。编译警告代码-pedantic打开完全服从ANSIC标准所需的全部警告诊断,如里出现非标准扩展,则拒绝编译,所以叫书呆子pedant.-ansi支持符合ANSI标准的C程序.这样就会关闭GNUC中某些不兼容ANSIC的特性,例如asm,inline和typeof关键字,以及诸如unix和vax这些表明当前系统类型的预定义宏.同时开启不受欢迎和极少使用的ANSItrigraph特性,以及禁止`$成为标识符的一部分.与pedantic区别在于,只是警告,如果需要停止编译,仍然需要打开-pedanticgcc警告提示功能(2)-Wall打开所有编译警告gcc-Wallillcode.c-oillcode-Werror视警告为错误;出现任何警告即放弃编译.gcc-Wall-Werrorillcode.c-oillcode-w禁止输出警告信息调试分析选项-g以操作系统的本地格式(stabs,COFF,XCOFF,或DWARF).产生调试信息.GDB能够使用这些调试信息,是进行gdb调试必备条件和大多数C编译器不同,GNUCC允许结合使用`-g‘和`-O’选项,但一般不建议一起使用gcchello.c-g-ohello-pg产生额外代码,用于输出profile信息,供分析程序gprof使用.所有调试选项会使用最终输出文件尺寸急剧增加,在最后发布,需要使用strip命令把调试信息去掉,striphello使用第三方库在Linux下开发软件时,完全不使用第三方函数库的情况是比较少见的,通常来讲都需要借助一个或多个函数库的支持才能够完成相应的功能。从程序员的角度看,函数库实际上就是一些头文件(.h)和库文件(.so或者.a)的集合。虽然Linux下的大多数函数都默认将头文件放到/usr/include/目录下,而库文件则放到/usr/lib/目录下,但并不是所有的情况都是这样。正因如此,GCC在编译时必须有自己的办法来查找所需要的头文件和库文件。GCC采用有哪些信誉好的足球投注网站目录的办法来查找所需要的文件,-I选项可以向GCC的头文件有哪些信誉好的足球投注网站路径中添加新的目录。例如,如果在/home/hxy/upgrade/include/目录下有编译时所需要的头文件,为了让GCC能够顺利地找到它们,就可以使用-I选项:gccfoo.c-I/home/xiaowp/include-ofoo

您可能关注的文档

文档评论(0)

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

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档