《Linux下gcc与g++用法以及编写makefile》.pdfVIP

《Linux下gcc与g++用法以及编写makefile》.pdf

  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文档。上传文档
查看更多
Linux gcc g++ makefile Linux gcc g++ makefile LLiinnuuxx下ggcccc与gg++++用法以及编写mmaakkeeffiillee (本文主要以gcc 为演示,如果是C++程序直接将给 gcc 改为g++即可) 1. gcc 与g++编译流程: 1) 编译流程: � 链接:生成链接文件。 2) 预处理:生成.i 的预处理文件。 � 只激活预处理,这个不生成文件,需要把它重定向一个输出文件。 � 演示: 3) 编译:生成.s 的编译文件。 � 只激活预处理和编译,把文件编译成汇编代码。 � 演示: 4) 汇编:生成.o 的汇编文件。 � 只激活预处理,编译和汇编,把程序做成obj 文件。 � 演示: 5) 链接: � gcchello.o -o hello � 演示: 6) 惯用: 2. gcc 与g++常用参数介绍: 1) -E � -E 选项指示编译器仅对输入文件进行预处理。当这个选项被使用时,预处理器 的输出被送到标准输出而不是储存在文件里。 � 演示: 2) -S � -S 选项告诉 GCC 在为C 代码产生了汇编语言文件后停止编译。GCC 产生的汇 编语言文件的缺省扩展名是.s。 � 演示: 3) -c � -c 选项告诉GCC 仅把源代码编译为目标代码。缺省时GCC 建立的目标代码文 件有一个.o 的扩展名。 � 演示: 4) -o � -o 选项来为将产生的可执行文件用指定的文件名。 � 演示: 5) -O � -O 选项告诉GCC 对源代码进行基本优化,这些优化在大多数情况下都会使程 序执行的更快,优化分为4 个等级(-O0,-O1,-O2,-O3)。 -O0 表示没有优化。 -O1 为缺省值,主要进行跳转和延迟退栈两种优化。 -O2 除了完成-O1 的优化之外,还进行一些额外的指令调整工作。 -O3 除了完成-O2 的优化之外,还进行包括循环展开和其他一些与处理特性相 关的优化工作。 � 演示: 其他优化等级的用法与演示中-O3 的用法一样。 6) -x � 设定文件编译所使用的语言,使后缀名无效。 � 演示: 7) -C � 在预处理的时候,不删除注释信息。 � 演示: 8) -M � 生成文件关联信息。包含目标文件所依赖的所有源代码。 � 演示: 2. 编写makefile: 1) 编写一个程序: � 共5 个文件,3 个.cpp 文件,2 个.h 文件。 � main.cpp: � printf1.cpp: � printf1.h: � printf2.cpp: � printf2.h: � 常规编译: � 汇编main.cpp: � 汇编printf1.cpp � 汇编printf2.cpp � 将3 个OBJ 文件链接一个链接文件上: � 运行: � 总共生成的文件: 2) 运用makefile 文件: � 优点: 由上例可知,照这样的编译方法,如果是一个项目的话,可能存在上百个文件, 岂不是太麻烦了,所以要把编译过程写进一个文件中:makefile。

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档