Linux C 编程

Linux C 编程

ID:37934035

大小:746.86 KB

页数:92页

时间:2019-06-03

Linux C 编程_第1页
Linux C 编程_第2页
Linux C 编程_第3页
Linux C 编程_第4页
Linux C 编程_第5页
资源描述:

《Linux C 编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux下的C编程实战一开发工具链的使用1.引言Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性。而近年来,Linux操作系统在嵌入式系统领域的延伸也可谓是如日中天,许多版本的嵌入式Linux系统被开发出来,如ucLinux、RTLinux、ARM-Linux等等。在嵌入式操作系统方面,Linux的地位是不容怀疑的,它开源、它包含TCP/IP协议栈、它易集成GUI。鉴于Linux操作系统在服务器和嵌入式系统领域愈来愈广泛的应用,社会上越来越需要

2、基于Linux操作系统进行编程的开发人员。笔者建议要直接安装Linux操作系统,如下图:在Linux平台下,可用任意一个文本编辑工具编辑源代码,但笔者建议使用emacs软件,它具备语法高亮、版本控制等附带功能,如下图:2.GCC编译器GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为:gcc[options][filenames]options为编译选项,GCC总共提供的编译选项超过100个,但只有少数几个会被频繁使用,我们仅对几个常用选项进行介绍。假设我们编译一输出“HelloW

3、orld”的程序:/*Filename:helloworld.c*/main(){printf("HelloWorld");}最简单的编译方法是不指定任何编译选项:gcchelloworld.c它会为目标程序生成默认的文件名a.out,我们可用-o编译选项来为将产生的可执行文件指定一个文件名来代替a.out。例如,将上述名为helloworld.c的C程序编译为名叫helloworld的可执行文件,需要输入如下命令:gcc–ohelloworldhelloworld.c-c选项告诉GCC仅把源代码编译为目标代码

4、而跳过汇编和连接的步骤;-S编译选项告诉GCC在为C代码产生了汇编语言文件后停止编译。GCC产生的汇编语言文件的缺省扩展名是.s,上述程序运行如下命令:gcc–Shelloworld.c将生成helloworld.c的汇编代码,使用的是AT&T汇编。用emacs打开汇编代码如下图:-E选项指示编译器仅对输入文件进行预处理。当这个选项被使用时,预处理器的输出被送到标准输出(默认为屏幕)而不是储存在文件里。-O选项告诉GCC对源代码进行基本优化从而使得程序执行地更快;而-O2选项告诉GCC产生尽可能小和尽可能快的代码。

5、使用-O2选项编译的速度比使用-O时慢,但产生的代码执行速度会更快。-g选项告诉GCC产生能被GNU调试器使用的调试信息以便调试你的程序,可喜的是,在GCC里,我们能联用-g和-O(产生优化代码)。-pg选项告诉GCC在你的程序里加入额外的代码,执行时,产生gprof用的剖析信息以显示你的程序的耗时情况。3.GDB调试器GCC用于编译程序,而Linux的另一个GNU工具gdb则用于调试程序。gdb是一个用来调试C和C++程序的强力调试器,我们能通过它进行一系列调试工作,包括设置断点、观查变量、单步等。其最常用的命令

6、如下:file:装入想要调试的可执行文件。kill:终止正在调试的程序。list:列表显示源代码。next:执行一行源代码但不进入函数内部。step:执行一行源代码而且进入函数内部。run:执行当前被调试的程序quit:终止gdbwatch:监视一个变量的值break:在代码里设置断点,程序执行到这里时挂起make:不退出gdb而重新产生可执行文件shell:不离开gdb而执行shell下面我们来演示怎样用GDB来调试一个求0+1+2+3+…+99的程序:/*Filename:sum.c*/main(){inti,

7、sum;sum=0;for(i=0;i<100;i++){sum+=i;}printf("thesumof1+2+...+is%d",sum);}执行如下命令编译sum.c(加-g选项产生debug信息):gcc–g–osumsum.c在命令行上键入gdbsum并按回车键就可以开始调试sum了,再运行run命令执行sum,屏幕上将看到如下内容:list命令:list命令用于列出源代码,对上述程序两次运行list,将出现如下画面(源代码被标行号):根据列出的源程序,如果我们将断点设置在第5行,只需在gdb命令行提示符

8、下键入如下命令设置断点:(gdb)break5,执行情况如下图:这个时候我们再run,程序会停止在第5行,如下图:设置断点的另一种语法是break,它在进入指定函数(function)时停住。相反的,clear用于清除所有的已定义的断点,clear清除设置在函数上的断点,clear则清除设置在指定行上

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

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

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