LinuxC编程基础--G

LinuxC编程基础--G

ID:36871933

大小:289.50 KB

页数:33页

时间:2019-05-10

LinuxC编程基础--G_第1页
LinuxC编程基础--G_第2页
LinuxC编程基础--G_第3页
LinuxC编程基础--G_第4页
LinuxC编程基础--G_第5页
资源描述:

《LinuxC编程基础--G》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章LinuxC编程基础--GCC主要内容gcc简介利用gcc编译c程序利用make工具简化编译过程调试开发工具环境开发工具:编辑工具、编译工具和调试工具,甚至配置工具和项目管理工具。开发环境:(1)基于文本的:vim+gcc+gdb+make(2)集成开发平台:Eclipse+CDT、基于文本的开发平台编辑工具:vim,emacs。编译工具:gcc,要使用指令完成编译,比如:gcc–ohellohello.c调试工具:gdb。项目管理工具:make,编写makefile文档来完成相关的一系列gcc指令。gcc简介名称:GNUprojectCandC++Compiler

2、GNUCompilerCollectiongcc是一个全功能的ANSI C兼容编译器,它是所有UNIX系统可用的C编译器。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。gcc简介对C/C++编译的控制预处理:对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。编译:就是把C/C++代码“翻译”成汇编代码。汇编:将第二步输出的汇编代码翻译成符合一定格式的机器代码,生成以.s为后缀的目标文件。链接:将上步生成的目标文件和系统库的目标文件和库文件链接起来,最终生成了可以在特

3、定平台运行的可执行文件。编译过程的四个阶段:预处理链接编译组译源程序(*.c)可执行文件预处理器编译器组译器连接器gcc的使用基本使用格式$gcc[选项][文件名]例://text.c#includevoidmain(){printf(“HelloWorld!”);}$gcctest.c$./a.outHelloWorld!或$gcc-otesttest.c$./testHelloWorld!常用选项及含义gcc常用选项选项含义-ofile将经过gcc处理过的结果存为文件file,这个结果文件可能是预处理文件、汇编文件、目标文件或者最终的可执行文件。

4、假设被处理的源文件为source.suffix,如果这个选项被省略了,那么生成的可执行文件默认名称为a.out;目标文件默认名为source.o;汇编文件默认名为source.s;生成的预处理文件则发送到标准输出设备。gcc的常用选项-c只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件。在对源文件进行查错时,或只需产生目标文件时可以使用该选项。-g[gdb]在可执行文件中加入调试信息,方便进行程序的调试。如果使用中括号中的选项,表示加入gdb扩展的调试信息,方便使用gdb来进行调试-O[0、1、2、3]对生成的代码使用优化,中括号中

5、的部分为优化级别,缺省的情况为2级优化,0为不进行优化。注意,采用更高级的优化并不一定得到效率更高的代码。gcc的常用选项-Idirname将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。-Ldirname将dirname所指出的目录加入到程序函数档案库文件的目录列表中,是在连接过程中使用的参数。在预设状态下,连接程序ld在系统的预设路径中(如/usr/lib)寻找所需要的档案库文件,这个选项告诉连接程序,首先到-L指定的目录中去寻找,然后到系统预设路径中寻找,如果函数库存放在多个目录下,就需要依次使用这个选项,给出相应的存放目录。-l

6、name在连接时,装载名字为“libname.a”的函数库,该函数库位于系统预设的目录或者由-L选项确定的目录下。例如,-lm表示连接名为“libm.a”的数学函数库。gcc的常用选项-w禁止所有警告-Wwarning允许产生warning类型的警告,warning可以是:main、unused等很多取值,最常用是-Wall,表示产生所有警告。如果warning取值为error,其含义是将所有警告作为错误(error),即出现警告就停止编译。-pedantic[-errors]表示gcc只发出ANSI/ISOC标准列出的所有警告,-pedantic–errors仅仅针对错

7、误。-ansi支持ANSI/ISOC的标准语法,取消GNU的语法中与该标准有冲突的部分,但并不保证生成与ANSI兼容代码。-Wall:允许所有有用的警告(建议总是使用该选项)/*bad.c*/#includeintmain(intargc,char**argv){printf(“Twoplustwois%f”,4);return0;}例1:$gccbad.c–obad例2:$gcc–Wallbad.c–obad13例1:-o:定义输出文件例:编译多个源文件$gcc-Wallmain.chello.c-oh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。