linux下的c编程.ppt
《linux下的c编程.ppt》由会员分享,可在线阅读,更多相关《linux下的c编程.ppt(29页珍藏版)》请在三一办公上搜索。
1、1,Linux下的C程序编程,2,主要内容,GCC编译器,GDB调试器,3,一、GCC编译器 1、GCC是什么,GCC(GNU C Complier)是符合ANSI C标准的多平台编译器。GCC通过后缀来区别输入文件的类型,集成C、C+、JAVA等多种语言编译器。cC语言源代码文件。h程序所包含的头文件。o编译后的目标文件。i 已经预处理过的C源代码文件。s汇编语言源代码文件。S经过预编译的汇编语言源代码文件。C、cpp、.cc或.cxx C+源代码文件。ii己经预处理过的C+源代码文件。a由目标文件构成的档案库文件。,通过文件后缀来判断文件类型,通过权限来判断文件是否可以运行,4,2、GCC
2、工作流程,5,起步演示helloworldhello.c#include int main(void)printf(“hello world!n”);return 0;编译运行这段程序:gcc hello.c o hello./hello输出:hello world!,6,3、基本使用,基本用法:gcc options filenames options:编译器所需要的编译选项 filename:要编译的文件名 GCC有超过100个的编译选项。选项的合理使用对编译调试程序有很大作用。只介绍其中最基本、最常用的参数-o output_filename:确定可执行文件的名称为output_file
3、name.如果不给出这个选项,gcc就给出预设的可执行文件a.out,7,-c 进行预处理、编译,产生目标代码,不连接成为可执行文件。编译器只是由输入的.c等源代码文件生成.o为后缀的的文件(一般应用程序开发用不到,内核开发中可以用到),-g 产生符号调试工具(GNU的GDB)所必要的符号信息,要想对源代码进行调试,必须加入这个选项。,-O 告诉gcc进行基本优化,整个源代码会在编译、连接过程中进行优化处理-O2 产生尽可能小、快的代码,比-O跟好的优化编译、连接,8,#include int main(void)double counter;double result;double temp
4、;for(counter=0;counter2000.0*2000.0*2000.0/20.0+2020;counter+=(5-1)/4)temp=counter/1979;result=counter;printf(“result is%lfn”,result);return 0;,9,gcc optimize.c o optimizetime./optimizegcc O optimize.c o optimize time./optimize 对比两次执行的输出结果不难看出,程序的性能的确的到了很大幅度的改善,10,-w 关闭所有警告,建议不要使用此项-Wall 允许发出gcc能提供的
5、所有有用的警告,也可以用-W(warning)来标记指定的警告,11,12,多个文件的编译,vi main.c#include void chessboard();void stair();main()chessboard();stair();,vi chessboard.c#include void chessboard()int i,j;for(i=0;i8;i+)for(j=0;j8;j+)if(i+j)%2=0)printf(%c%c,0 xa1,0 xf6);else printf();printf(n);printf(n);,vi stair.c#include void stai
6、r()int i,j;for(i=1;i11;i+)for(j=1;j=i;j+)printf(%c%c,0 xa1,0 xf6);printf(n);printf(n);,gcc main.c chessboard.c stair.c o prngrap,13,常见错误,语法错误:错误信息:文件source.c中第 n 行有语法错误(syntex error)。头文件错误错误信息:找不到头文件head.h(can not find include file head.h)。函数库错误错误信息:链接程序找不到所需的函数库。如:ld:-lm:No such file or directory,1
7、4,二、GDB调试器,1、GDB介绍GDB调试器主要用于调试可执行文件,这个文件必须提供调试版本,包含调试信息。所以,编译程序时一定用调试选项使生成的可执行文件内包含调试信息,常用-g。调试信息包含程序里每个变量的类型和在可执行文件里的地址映射及行号。主要功能:监视程序中变量的值设置断点逐行执行代码,15,起步调试test.c,void main()int i;long result=0;for(i=1;i=100;i+)result+=i;printf(result=%dn,result);,16,GDB快速进阶1、编译生成可执行文件 gcc g test.c o test2、启动GDB g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 编程
链接地址:https://www.31ppt.com/p-2673643.html