第六章+Linux+程序设计(gcc).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 常用开发工具 主要内容 gcc简介 功能 命令 利用gcc编译c程序 利用make工具简化编译过程 make简介 Makefile基本格式 调试 静态调试 动态调试 gdb调试工具的使用 gcc简介 名称: GNU project C and C++ Compiler GNU Compiler Collection 管理与维护 GNU项目 对C/C++编译的控制 预处理(Preprocessing) 编译(Compilation) 汇编(Assembly) 链接(Linking gcc的使用 基本使用格式 $ gcc [ 选项 ] 文件名 常用选项及含义 gcc常用选项 选项 含义 -o file 将经过gcc处理过的结果存为文件file,这个结果文件可能是预处理文件、汇编文件、目标文件或者最终的可执行文件。假设被处理的源文件为source.suffix,如果这个选项被省略了,那么生成的可执行文件默认名称为a.out;目标文件默认名为source.o;汇编文件默认名为source.s;生成的预处理文件则发送到标准输出设备。 gcc的常用选项 gcc常用选项 选项 含义 -c 仅对源文件进行编译,不链接生成可执行文件。在对源文件进行查错时,或只需产生目标文件时可以使用该选项。 -g[gdb] 在可执行文件中加入调试信息,方便进行程序的调试。如果使用中括号中的选项,表示加入gdb扩展的调试信息,方便使用gdb来进行调试 -O[0、1、2、3] 对生成的代码使用优化,中括号中的部分为优化级别,缺省的情况为2级优化,0为不进行优化。注意,采用更高级的优化并不一定得到效率更高的代码。 -Dname[=definition] 将名为name的宏定义为definition,如果中括号中的部分缺省,则宏被定义为1 gcc的常用选项 gcc常用选项 选项 含义 -Idir 在编译源程序时增加一个搜索头文件的额外目录——dir,即include增加一个搜索的额外目录。 -Ldir 在编译源文件时增加一个搜索库文件的额外目录——dir -llibrary 在编译链接文件时增加一个额外的库,库名为library.a -w 禁止所有警告 -Wwarning 允许产生warning类型的警告,warning可以是:main、unused等很多取值,最常用是-Wall,表示产生所有警告。如果warning取值为error,其含义是将所有警告作为错误(error),即出现警告就停止编译。 gcc文件扩展名规范 gcc可以根据文件扩展名执行操作 gcc文件扩展名规范 扩展名 类型 可进行的操作方式 .c c语言源程序 预处理、编译、汇编、链接 .C,.cc,.cp,.cpp,.c++,.cxx c++语言源程序 预处理、编译、汇编、链接 .i 预处理后的c语言源程序 编译、汇编、链接 .ii 预处理后的c++语言源程序 编译、汇编、链接 .s 预处理后的汇编程序 汇编、链接 .S 未预处理的汇编程序 预处理、汇编、链接 .h 头文件 不进行任何操作 .o 目标文件 链接 使用gcc编译代码 源代码 示例源程序——hello.c #include stdio.h int main(void) { printf(hello gcc!\r\n); return 0; } 生成预处理文件 命令 $gcc –E hello.c –o hello.i 预处理文件hello.i的部分内容 ...... extern void funlockfile (FILE *__stream) ; # 679 /usr/include/stdio.h 3 # 2 hello.c 2 int main(void) { printf(hello gcc!\n); return 0; } 生成汇编文件 命令 $gcc –S hello.c –o hello.s 汇编文件hello.s的部分内容 ...... main: pushl %ebp movl %esp, %ebp ........ addl $16, %esp movl $0, %eax leave ret ...... 生成二进制文件 生成目标文件 命令: $gcc –c hello.c –o hello.o 生成可执行文件 命令: $gcc hello.c –o hello 运行程序 $./hello hello gcc! 编译多个文件 文件清单 greeting.h #ifndef _GREETING_H #define _GREETING_H void greeting (char * name); #endif greeting.c #i

文档评论(0)

xiaohuer + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档