makefile与gnu参数说明教案.docxVIP

  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文档。上传文档
查看更多
g++/gcc参数介绍gcc and g++分别是gnu的c c++编译器???gcc/g++在执行编译工作的时候,总共需要4步???1.预处理,生成.i的文件????? 预处理器cpp2.将预处理后的文件不转换成汇编语言,生成文件.s????? 编译器egcs3.有汇编变为目标代码(机器代码)生成.o的文件??? 汇编器as4.连接目标代码,生成可执行程序??? 连接器ld1.总体选项??? -E???只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里???面.???例子用法:???gcc -E hello.c pianoapan.txt???gcc -E hello.c | more???慢慢看吧,一个hello word 也要与处理成800行的代码?? ???????-S???只激活预处理和编译,就是指把文件编译成为汇编代码。???例子用法???gcc -S hello.c???他将生成.s的汇编代码,你可以用文本编辑器察看?????????-c????只激活预处理,编译,和汇编,也就是他只把程序做成obj文件???例子用法:???gcc -c hello.c???他将生成.o的obj文件 ?2.目录选项????-Idir???在你是用#includefile的时候,gcc/g++会先在当前目录查找你所制定的头???文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他???回先在你所制定的目录查找,然后再按常规的顺序去找.???对于#include,gcc/g++会到-I制定的目录查找,查找不到,然后将到系???统的缺省的头文件目录查找?? ?????-include file??? -i相当于“#include”包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以???用它设定,功能就相当于在代码中使用#include???例子用法:???gcc hello.c -include /root/pianopan.h???????-I-???就是取消前一个参数的功能,所以一般在-Idir之后使用??????-idirafter dir???在-I的目录里面查找失败,讲到这个目录里面查找.???????-iprefix prefix?????? -iwithprefix dir???一般一起使用,当-I的目录查找失败,会到prefix+dir下查找? ??????-Ldir???制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然???编译器将只在标准库的目录找。这个dir就是目录的名称。????? -llibrary????制定编译的时候使用的库???例子用法???gcc -lcurses hello.c???使用ncurses库编译程序???3.调试选项?????-g???只是编译器,在编译的时候,产生调试信息。?????? -gstabs???此选项以stabs格式声称调试信息,但是不包括gdb调试信息.???????-gstabs+???此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.???????-ggdb????此选项将尽可能的生成gdb的可以使用的调试信息.????-glevel请求生成调试信息,同时用level指出需要多少信息,默认的level值是2“-n”或“--just-print”,其只是显示makefile命令,但不会执行命令“-s”或“--slient”则是全面禁止命令的显示4.链接方式选项:????-static?此选项将禁止使用动态库。--static-libgcc ?链接静态libgcc库优点:程序运行不依赖于其他库缺点:文件比较大????-shared?(-G) 此选项将尽量使用动态库,为默认选项--shared-libgcc 链接动态libgcc库优点:生成文件比较小缺点:运行时需要系统提供动态库????-symbolic?建立共享目标文件的时候,把引用绑定到全局符号上.对所有无法解析的引用作出警告(除非用连接编辑选项 `-Xlinker -z -Xlinker defs取代)。注:只有部分系统支持该选项.5.错误与告警选项????-Wall?一般使用该选项,允许发出GCC能够提供的所有有用的警告。也可以用-W{warning}来标记指定的警告。????-pedantic?允许发出ANSI/ISO C标准所列出的所有警告????-pedantic-errors?允许发出ANSI/ISO C标准所列出的错误????-werror?把所有警告转换为错误,以在警告发生时中止编译过程????-w?关闭所有警告,建议不要使用此项6.预处理选项??? -Dmacro???相当于C语言中的#define ma

文档评论(0)

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

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

1亿VIP精品文档

相关文档