- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 编译选项 6、 -static:静态链接库文件 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a。当使用静态库时,连接器找出程序所需的函数,然后将它们拷贝到可执行文件,一旦连接成功,静态程序库也就不再需要了。然而,对动态库而言,就不是这样,动态库会在执行程序内留下一个标记‘指明当程序执行时,首先必须载入这个库。由于动态库节省空间,linux下进行连接的缺省操作是首先连接动态库。 例:gcc –static hello.c -o hello1 用静态键接库生成hello1可执行文件,然后用ll命令查看大小,会发现helloworld比hello1小得多。 * 7、 -g选项 调试选项,产生供gdb调试用的可执行文件,生成的可执文件大小明显比只用-o选项编译汇编连接后的文档大。 例:gcc -g hello.c –o hello2 编译选项 * ? Gcc总体选项列表 选??? 项 含??? 义 -ansi 支持符合ANSI标准的C程序 -pedantic 允许发出ANSI C标准所列的全部警告信息 -pedantic-error 允许发出ANSI C标准所列的全部错误信息 -w 关闭所有告警 -Wall 允许发出Gcc提供的所有有用的报警信息 -werror 把所有的告警信息转化为错误信息,并在告警发生时终止编译过程 编译选项 * GCC选项 三、优化选项 Gcc可以对代码进行优化,它通过编译选项“-On”来控制优化代码的生成,其中n是一个代表优化级别的整数。对于不同版本的Gcc来讲,n的取值范围及其对应的优化效果可能并不完全相同,比较典型的范围是从0变化到2或3。 不同的优化级别对应不同的优化处理工作。如使用优化选项“-O”主要进行线程跳转(Thread Jump)和延迟退栈(Deferred Stack Pops)两种优化。使用优化选项“-O2”除了完成所有“-O1”级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度等。选项“-O3”则还包括循环展开和其他一些与处理器特性相关的优化工作。 * 编译选项 Gcc体系结构相关选项列表 选??? 项 含??? 义 -mcpu=type 针对不同的CPU使用相应的CPU指令。可选择的type有i386、i486、pentium及i686等 -mieee-fp 使用IEEE标准进行浮点数的比较 -mno-ieee-fp 不使用IEEE标准进行浮点数的比较 -msoft-float 输出包含浮点库调用的目标代码 -mshort 把int类型作为16位处理,相当于short int -mrtd 强行将函数参数个数固定的函数用ret NUM返回,节省调用函数的一条指令 * 调试器GDB的使用 应用程序的调试是开发过程中必不可少的环节之一。Linux 下的GNU 的调试器称为GDB(GNU Debugger) 。 GDB所提供的一些功能。 1、启动程序,并且可以设置运行环境和参数来运行指定程序。 2、让程序在指定断点处停止执行。 3、对程序做出相应的调整,这样就能纠正一个错误后继续调试。 * 调试器GDB的使用 启动GDB Gcc使用g参数后就可以生成GDB使用的调试文件,如对以前用g参数生成的hello2文件调试。 在此输入命令 * 调试器GDB的使用 查看源文件 相关命令为:list 行号 例: * 调试器GDB的使用 设置断点 在main处设置断点 在5行处设置断点 查看断点 删除断点1 断点信息表中,num:断点号;Type:断点类型;Disp:断点状态;Enb:表示断是否启用;Address:断点的内存地址;What:断点在源文件中的位置。 * GDB命令 命 令 说 明 file 指定要调试的可执行程序 kill 终止正在调试的可执行程序 next 执行一行源代码但并不进入函数内部 list 部分列出源代码 step 执行一行源代码并不进入函数内部 run 执行当前的可执行程序 quit 结束gdb调试任务 watch 可以检查一个变量的值而不管它何时被改变 print 打印表达式的值到标准输出 break N 在指定的第N行源代码设置断点 info break 显示当前断点清单,包括到达断点处的次数等 info files 显示被调试文件的详细信息 info func 显示所有的函数名 info local 显示当函数中的局部变量信息 info prog 显示被调试程序的
您可能关注的文档
最近下载
- 第4课 古代诗歌四首(分层作业)七年级语文上册同步高效课堂(统编版2024)(解析版).docx VIP
- 北京市西城区2022-2023学年六年级上学期数学期末试卷(含答案).docx VIP
- excel2007vba控件属性大全.pdf
- 30题纪检监察位岗位常见面试问题含HR问题考察点及参考回答.docx VIP
- 医院静脉治疗横断面调研结果分析报告.ppt
- 《中国石拱桥》测试题.doc VIP
- 数值分析智慧树知到期末考试答案章节答案2024年长安大学.docx
- 大学mooc英语文学导论(湖南师范大学)章节测验期末考试答案.docx
- 国际公法选择题大全.pdf VIP
- 金田变频器386S恒压供水专用变频器说明书V1.06.pdf
文档评论(0)