- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
gcc笔记
GCC笔记 The History of GCC 1984年,Richard Stallman发起了自由软件运动,GNU (Gnus Not Unix)项目应运而生,3年后,最 初版的GCC横空出世,成为第⼀款可 植、可优化、支持A NSI C的开源C编译器。 GCC最初的全名是GNU C Com iler,之后,随着GCC支持的语言越来越多,它的名称变成 了GNU Com iler Collection。 这里介绍的gcc是GCC的前端,C编译器. 警告信息 -Wall : 显示所有常用的编译警告信息。 -W : 显示更多的常用编译警告,如:变量未使用、⼀些逻辑错误。 -Wconversion : 警告隐式类型转换。 -Wshadow : 警告影子变量 (在代码块中再次声明已声明的变量) -Wcast-qual :警告指针修改了变量的修饰符。如:指针修改const变量。 -Wwrite-strings : 警告修改const字符串。 -Wtraditional : 警告A NSI编译器与传统C编译器有不同的解释。 -Werror : 即使只有警告信息,也不编译。 (gcc默认:若只有警告信息,则进行编译,若有错误 信息,则不编译) C语言标准 你可以在gcc的命令行中通过指定选项来选择相应的C语言标准: 从传统c到必威体育精装版的GNU扩展C. 默认 情况下, gcc使用必威体育精装版的GNU C扩展. -ansi : 关闭GNU扩展中与A NSI C相抵触的部分。 - edantic : 关闭所有的GNU扩展。 -std=c89 : 遵循C89标准 -std=c99 : 遵循C99标准 -std=traditional : 使用原始C 注意:后4个选项可以与-ansi结合使用,也可以单独使用。 可在gcc 中使用大量GNU C扩展. 生成特定格式的文件 以hello.c为例子,可以设置选项生成hello.i, hello.s, hello.o以及最终的hello文件: hello.c : 最初的源代码文件; hello.i : 经过编译预处理的源代码; hello.s : 汇编处理后的汇编代码; hello.o : 编译后的目标文件,即含有最终编译出的机器码,但它里面所引用的其他文件中函数的 内存位置尚未定义。 hello / a.out : 最终的可执行文件 (还有.a(静态库文件), .so(动态库文件), .s(汇编源文件)留待以后讨论) 如果你不通过-o指定生成可执行文件名,那么会默认生成a.out. 不指定生成文件名肯能覆盖你上次 生成的a.out. e.g. $ gcc hello.c 在不给gcc传递任何参数的情况下, gcc执行默认的操作: 将源文件编译为目标文件-- 将目标文件连 接为可执行文件(名为a.out) -- 删除目标文件. -c生成.o文件时,默认生成与源代码的主干同名的.o文件。比如对应hello.c生成hello.o. 但也可在生 成目标文件时指定目标文件名(注意同时要给出.o后缀): $ gcc -c -o demo.o demo.c $ gcc -Wall -c hello.c : 生成hello.o $ gcc -Wall -c -save-tem s hello.c : 生成hello.i, hello.s, hello.o 注意-Wall 选项的使用场合:仅在涉及到编译 (即会生成.o文件时,用-Wall) 多文件编译、连接 如果原文件分布于多个文件中:file1.c, file2,c $ gcc -Wall file1.c file2.c -o name 若对其中⼀个文件作了修改,则可只重新编译该文件,再连接所有文件: $ gcc -Wall -c file2.c $ gcc file1.c file2.o -c name 注意:若编译器在命令行中从左向右顺序读取.o文件,则它们的出现顺序有限制:含有某函数定 义的文件必须出现在含有调用该函数的文件之后。好在GCC无此限制。 编译预处理 以上述的hello.c为例, 要对它进行编译预备处理, 有两种方法: 在gcc 中指定-E选项, 或直接调 用c .gcc的编译预处理命令程序为c ,比较新版本的gcc已经
您可能关注的文档
- c语言深度解剖(完美高清文字版).pdf
- dcfw-1800ges防火墙快速配置手册--for v3x版本.pdf
- ebox-2300_wifi_installation.pdf
- fortigate防火墙安全配置规范.pdf
- fbi秘籍:如何读懂肢体语言(图文原版).pdf
- gartner如何定义下一代防火墙-sinogrid.pdf
- freelink wifi hdmi 无线媒体分享器使用说明书.pdf
- gbt1.1-2009培训教材(福建标准院内部培训教材).pdf
- gcc hacks in the linux kernel.pdf
- gcc internals and porting.pdf
文档评论(0)