- 1
- 0
- 约3.02千字
- 约 6页
- 2019-05-07 发布于广东
- 举报
Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo 初识gcc编译器 本讲大纲: 第一次编译 gcc选项概述 警告 gcc调试 代码优化 第一次编译 在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一 位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。 Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 5.1.1 第一次编译 在学习使用GCC之前,下面的这个例子能够帮助用户迅速理解GCC的工作原理,并将其立即运用到实际的项目开发中去。首先用熟悉的编辑器输入如下所示的代码: #includestdio.h int main(){ printf(hello word!Linux c!\n ); return 0; } 将上面的代码保存为hello.c,然后用户就可以在终端中对上面的C语言代码进行编译了。并且我们给编译出的新文件其名为hello,最后执行编译好的文件。 上面在编译的时候,为gcc的后面加入了选项-o进行新文件的重命名,如果不加入这个选项,那么新文件就会默认为a.out,如果再次编译其他的文件,同样不进行重命名的话,那么这里的a.out将会被覆盖掉。 gcc选项概述 在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。 Gcc最基本的用法是∶ gcc [options] [filenames] 其中options就是编译器所需要的参数,filenames给出相关的文件名称。 -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。 -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。 -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。 -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。 警告 GCC包含完整的出错检查和警告提示功能,它们可以帮助Linux程序员写出更加专业和优美的代码。先来看看下面所示的程序,这段代码写得很有问题,仔细检查一下不难挑出很多毛病: #include stdio.h void main(void) { long long int var = 1; printf(It is not standard C code!\n); } main函数的返回值被声明为void,但实际上应该是int; 使用了GNU语法扩展,即使用long long来声明64位整数,不符合ANSI/ISO C语言标准; main函数在终止前没有调用return语句。 下面来看看GCC是如何来发现这些错误的。当GCC在编译不符合ANSI/ISO C语言标准的源代码时,如果加上了-pedantic选项,那么使用了扩展语法的地方将产生相应的警告信息: # gcc -pedantic illcode.c -o illcode illcode.c: In function `main: illcode.c:9: ISO C89 does not support `long long illcode.c:8: return type of `main is not `int 值得注意的是,-pedantic编译选项并不能保证被编译程序与ANSI/ISO C标准的完全兼容,它仅仅只能用来帮助Linux程序员离这个目标越来越近。或者换句话说,-pedan
您可能关注的文档
- 66劳动出版社精品课件 介绍信《文秘常用应用文写作》介绍信.ppt
- 67劳动出版社精品课件朗诵祖国啊我亲爱的祖国朗诵.ppt
- 68劳动出版社精品课件 三条传送带的起停与延时控制《PLC技术及应用(三菱)》PPT竞赛(黄栋斐).ppt
- 7.状态空间分析在工程中应用.ppt
- 70劳动出版社精品课件 设备与工具 《中式面点工艺(广式面点)》第二章 A110276中式面点工艺(广式面点)第二章设备与工具.ppt
- 71劳动出版社精品课件 节气门位置传感器 《汽车电控发动机构造与维修》模块二单元三 A077647节气门位置传感器.ppt
- 72劳动出版社精品课件 拣货与补货《物流配送实务》项目四拣货与补货.ppt
- 73劳动出版社精品课件 Word图文编排计算机应用高级教程WORD图文编排.ppt
- 75中国烹饪 《导游基础知识》第七章第一节 A327423贺娟《中国烹饪》.ppt
- 76劳动出版社精品课件 口语交际训练——转述 《口语交际训练(第二版)》秘书日常应用口语转述(潘秀琼).ppt
最近下载
- GJ B 1404-1992器材供应单位质量保证能力评定.pdf VIP
- 电缆沟开挖方案.docx VIP
- 王者荣耀游戏品牌VI 手册(2019年版).pdf
- 广东省深圳市深圳外国语达标名校2024届中考物理考前最后一卷含解析.doc VIP
- 旅店业管理系统解决方案报告.ppt
- 支部班子“加强理论武装、执行上级组织决定、加强党员管理监督等六个对照”2025年度组织生活会班子对照检查提纲四篇.docx VIP
- 校本课程开发.ppt VIP
- 2026年最新体检中心考试题及答案.doc VIP
- T_CHES 161—2025(延续取水许可评估技术规程).pdf
- 中国信通院具身智能发展报告2025年解读PPT.pptx VIP
原创力文档

文档评论(0)