欢迎来到天天文库
浏览记录
ID:50052377
大小:142.50 KB
页数:34页
时间:2020-03-08
《Linux系统应用与开发教程 教学课件 作者 邝颖杰 ch9.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux系统应用与程序设计C语言的标准ANSICPOSIXSVIDXPGGNUCC语言开发环境简介简单的程序编辑器是vi/vim、gedit和emacs,其中vim是vi的升级版高级的IDE集成开发环境则有EclipseCDT、SourceInsight和KDevelop等C头文件和C函数库用C语言进行程序设计时,我们要用到头文件来提供对常量的定义和对系统及库函数调用的声明。库是一组预先编译好的函数的集合,这些函数都是按照可重用的原则编写的。gcc简介名称:GNUprojectCandC++CompilerGNUC
2、ompilerCollection管理与维护GNU项目对C/C++编译的控制预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)GCC文件扩展名规范(1).c为后缀的文件,是C语言源代码文件。(2).h为后缀的文件,是头文件。(3).C,.cc、.cpp、.cp或.cxx为后缀的文件,是C++源代码文件。(4).h为后缀的文件,是程序所包含的头文件。(5).i为后缀的文件,是已经预处理过的C源代码文件。(6).ii为后缀的文件,是已经预处理过的C++源代码文
3、件。(7).m为后缀的文件,是Objective-C源代码文件。(8).o为后缀的文件,是编译后的目标文件。(9).s为后缀的文件,是汇编语言源代码文件。(10).S为后缀的文件,是经过预编译的汇编语言源代码文件。gcc的使用基本使用格式$gcc[选项]<文件名>常用选项及含义gcc常用选项选项含义-ofile将经过gcc处理过的结果存为文件file,这个结果文件可能是预处理文件、汇编文件、目标文件或者最终的可执行文件。假设被处理的源文件为source.suffix,如果这个选项被省略了,那么生成的可执行文件默认名称
4、为a.out;目标文件默认名为source.o;汇编文件默认名为source.s;生成的预处理文件则发送到标准输出设备。gcc的常用选项gcc常用选项选项含义-c仅对源文件进行编译,不链接生成可执行文件。在对源文件进行查错时,或只需产生目标文件时可以使用该选项。-g[gdb]在可执行文件中加入调试信息,方便进行程序的调试。如果使用中括号中的选项,表示加入gdb扩展的调试信息,方便使用gdb来进行调试-O[0、1、2、3]对生成的代码使用优化,中括号中的部分为优化级别,缺省的情况为2级优化,0为不进行优化。注意,采用更
5、高级的优化并不一定得到效率更高的代码。-Dname[=definition]将名为name的宏定义为definition,如果中括号中的部分缺省,则宏被定义为1gcc的常用选项gcc常用选项选项含义-Idir在编译源程序时增加一个搜索头文件的额外目录——dir,即include增加一个搜索的额外目录。-Ldir在编译源文件时增加一个搜索库文件的额外目录——dir-llibrary在编译链接文件时增加一个额外的库,库名为library.a-E指定GCC在生成预处理文件后停止-S指定GCC在生成汇编文件后停止-w禁止所有
6、警告-Wwarning允许产生warning类型的警告,warning可以是:main、unused等很多取值,最常用是-Wall,表示产生所有警告。如果warning取值为error,其含义是将所有警告作为错误(error),即出现警告就停止编译。使用gcc编译代码示例源程序——hello.c#includeintmain(){printf("helloworld!r");return0;}生成预处理文件命令$gcc–Ehello.c–ohello.i预处理文件hello.i的部分内容…ex
7、ternvoidfunlockfile(FILE*__stream)__attribute__((__nothrow__));#844"/usr/include/stdio.h"34#2"hello.c"2intmain(){printf("helloworld!");}生成汇编文件命令$gcc–Shello.c–ohello.s汇编文件hello.s的部分内容main:leal4(%esp),%ecxandl$-16,%esppushl-4(%ecx)pushl%ebpmovl%esp,%ebppushl%ec
8、xsubl$4,%espmovl$.LC0,(%esp)callputsaddl$4,%esppopl%ecxpopl%ebpleal-4(%ecx),%espret生成对应的目标文件gcc-chello.c-ohello.o目标代码并不能在CPU上运行,但它离二进制可执行文件已经很近了,再输入以下编译指令即可生成二进制可执行文件。[root@
此文档下载收益归作者所有