LinuxC编程基础-G.ppt
《LinuxC编程基础-G.ppt》由会员分享,可在线阅读,更多相关《LinuxC编程基础-G.ppt(33页珍藏版)》请在三一办公上搜索。
1、第二章 Linux C编程基础-GCC,主要内容,gcc简介利用gcc编译c程序利用make工具简化编译过程调试,开发工具环境,开发工具:编辑工具、编译工具和调试工具,甚至配置工具和项目管理工具。开发环境:(1)基于文本的:vim+gcc+gdb+make(2)集成开发平台:Eclipse+CDT、,基于文本的开发平台,编辑工具:vim,emacs。编译工具:gcc,要使用指令完成编译,比如:gcc o hello hello.c调试工具:gdb。项目管理工具:make,编写makefile文档来完成相关的一系列gcc指令。,gcc简介,名称:GNU project C and C+Compi
2、ler GNU Compiler Collection gcc是一个全功能的ANSIC兼容编译器,它是所有UNIX系统可用的C编译器。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%30%。,gcc简介,对C/C+编译的控制预处理:对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。编译:就是把C/C+代码“翻译”成汇编代码。汇编:将第二步输出的汇编代码翻译成符合一定格式的机器代码,生成以.s为后缀的目标文件。链接:将上步生成的目标文件和系统库的目标文件和库文件链接起来,最终生成了可以在特定平台运行的
3、可执行文件。,编译过程的四个阶段:,gcc的使用,基本使用格式$gcc 选项 文件名例:,/text.c#includevoid main()printf(“Hello World!n”);,$gcc test.c$./a.outHello World!或$gcc-o test test.c$./testHello World!,常用选项及含义,gcc的常用选项,gcc的常用选项,gcc的常用选项,-Wall:允许所有有用的警告(建议总是使用该选项),/*bad.c*/#include int main(int argc,char*argv)printf(“Two plus two is%fn
4、”,4);return 0;,例1:$gcc bad.c o bad例2:$gcc Wall bad.c o bad,13,例1:,-o:定义输出文件,例:编译多个源文件$gcc-Wall main.c hello.c-o helloworld,/*hello.h*/void hello(const char*name);,/*hello.c*/#include#include hello.h void hello(const char*name)printf(Hello,%s!n,name);,/*main.c*/#include hello.h int main(int argc,char
5、*argv)hello(world);return 0;,14,例2:,-l:链接外部库文件,库是已经编译好并能被链接入程序的对象文件的集合。库中提供一些最常用的系统函数,比如象C的数学库中求平方根函数sqrt。,库通常被存储在扩展名为“.a”或“.so”的特殊归档文件中。,C标准库自身存放在“/usr/lib/libc.a”中,包含ANSI/ISO C标准指定的各个函数,是默认自动加载的库。,/*sqrt.c*/#include#include int main(int argc,char*argv)double r=sqrt(3.0);printf(The square root of 3
6、.0 is%fn,r);return 0;,例:$gcc-Wall sqrt.c-o sqrt,ccbR6Ojm.o:In function main:ccbR6Ojm.o(.text+0 x19):undefined reference to sqrt,15,例:,-l:链接外部库文件,函数sqrt()并不定义在源程序中或默认的C库“libc.a”中。,为了使得编译器能把sqrt()函数链接到主程序“sqrt.c”,需要提供“libm.a”库。,例:$gcc-Wall sqrt.c/usr/lib/libm.a-o sqrt,/usr/lib/libm.a,-lm,$gcc-Wall sqr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LinuxC 编程 基础
链接地址:https://www.31ppt.com/p-6511131.html