- 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 显示被调试程序的
您可能关注的文档
- 实验二-重结晶与过滤-JJX.ppt
- 实验活动3燃烧的条件(备选).ppt
- 实验酵母菌形态学观察与显微镜直接计数技术1.ppt
- 实验九-二水合氯化钡中钡含量的测定(3次课).ppt
- 实验九收发信机系统仿真.ppt
- 实验课(二)绿叶中色素的提取和分离.ppt
- 实验六呼吸系统疾病(发学生)2014.4.21.ppt
- 实验三单基因病系谱分析.ppt
- 实验三进程通信.ppt
- 实验设计与数据处理第6章正交试验.ppt
- 《GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业》.pdf
- GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业.pdf
- GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 中国国家标准 GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 《GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法》.pdf
- 《GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数》.pdf
- GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数.pdf
- 《GB/T 17215.686-2024电测量数据交换 DLMS/COSEM组件 第86部分:社区网络高速PLCISO/IEC 12139-1配置》.pdf
- GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜.pdf
- 《GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜》.pdf
文档评论(0)