- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下的C编程实战(一)
开发平台搭建
1.引言
Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的
开源特点以及其超越Windows的安全性和稳定性。而近年来,Linux操作系
统在嵌入式系统领域的延伸也可谓是如日中天,许多版本的嵌入式Linux系
统被开发出来,如ucLinux、RTLinux、ARM-Linux等等。在嵌入式操作系统
方面,Linux的地位是不容怀疑的,它开源、它包含TCP/IP协议栈、它易集
成GUI。
鉴于Linux操作系统在服务器和嵌入式系统领域愈来愈广泛的应用,社会上
越来越需要基于Linux操作系统进行编程的开发人员。
浏览许多论坛,经常碰到这样的提问:“现在是不是很流行unix/linux下的
c编程?所以想学习一下!但是不知道该从何学起,如何下手!有什么好的
建议吗?各位高手!哪些书籍比较合适初学者?在深入浅出的过程中应该看
哪些不同层次的书?比如好的网站、论坛请大家赐教!不慎感激!”
鉴于读者的需求,在本文中,笔者将对Linux平台下C编程的几个方面进行
实例讲解,并力求回答读者们关心的问题,以与读者朋友们进行交流,共同
提高。
在本文的连载过程中,有任何问题或建议,您可以给笔者发送email:
21cnbao@21,您也可以进入笔者的博客参与讨论:
/21cnbao。
笔者建议在PC内存足够大的情况下,不要直接安装Linux操作系统,最好把
它安装在运行VMWare虚拟机软件的Windows平台上。
在Linux平台下,可用任意一个文本编辑工具编辑源代码,但笔者建议使用
emacs软件,它具备语法高亮、版本控制等附带功能。
2.GCC编译器
GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基
本用法为:
gcc [options] [filenames]
options为编译选项,GCC总共提供的编译选项超过100个,但只有少数几个
会被频繁使用,我们仅对几个常用选项进行介绍。
假设我们编译一输出“Hello World”的程序:
Cpp代码
1 /* Filename:helloworld.c */
2 main()
3 {
4 printf(Hello World\n);
5 }
最简单的编译方法是不指定任何编译选项:
gcc helloworld.c
它会为目标程序生成默认的文件名a.out,我们可用-o编译选项来为将产生
的可执行文件指定一个文件名来代替a.out。例如,将上述名为helloworld.c
的C程序编译为名叫helloworld的可执行文件,需要输入如下命令:
gcc –o helloworld helloworld.c
-c选项告诉GCC仅把源代码编译为目标代码而跳过汇编和连接的步骤;
-S 编译选项告诉GCC 在为 C代码产生了汇编语言文件后停止编译。GCC 产
生的汇编语言文件的缺省扩展名是.s,上述程序运行如下命令:
gcc –S helloworld.c
将生成helloworld.c的汇编代码,使用的是ATT汇编。用emacs打开汇编
代码。
-E选项指示编译器仅对输入文件进行预处理。当这个选项被使用时,预处理
器的输出被送到标准输出(默认为屏幕)而不是储存在文件里。
-O选项告诉GCC对源代码进行基本优化从而使得程序执行地更快;而-O2选
项告诉GCC产生尽可能小和尽可能快的代码。使用-O2选项编译的速度比使用
-O时慢,但产生的代码执行速度会更快。
-g选项告诉GCC产生能被GNU调试器使用的调试信息以便调试你的程序,可
喜的是,在GCC里,我们能联用-g和-O (产生优化代码)。
-pg选项告诉GCC在你的程序里加入额外的代码,执行时,产生gprof用的
剖析信息以显示你的程序的耗时情况。
3.GDB调试器
GCC用于编译程序,而Linux的另一个GNU工具gdb则用于调试程序。gdb
是一个用来调试C和C++程序的强力调试器,我们能通过它进行一系列调试
工作,包括设置断点、观查变量、单步等。
其最常用的命令如下:
file:装入想要调试的可执行文件。
kill:终止正在调试的程序。
list:列表显示源代码。
next:执行一行源代码但不进入函数内部。
step:执行一行源代码而且进入函数内部。
run:执行当前被调试的程序
quit:终止gdb
watch:监视一个变量的值
break:在代码里设置断点,程序执行到这里时挂起
make:不退出gdb而重新产生可执行文件
shell
您可能关注的文档
最近下载
- 广东省道路交通事故损害赔偿项目计算标准(试行).pdf VIP
- 北京建筑 图集19BJ9-2 室外工程—路、台、坡、棚.docx VIP
- 2025年度班子带头强化政治忠诚、提高政治能力方面存在问题的原因分析.docx VIP
- DB37_T 4551-2022 城市轨道交通车辆段运作规范.docx
- 通风、空调系统管道工程量计算规则.pdf VIP
- 河北渤海工程设计有限公司HAZOP分析报告模板1.doc
- 广元市2025年专业技术人员公需科目继续教育答案.pdf VIP
- 数字智慧方案5366丨碳视角下区域能源互联网规划思路(30页PPT).pptx VIP
- 甄嬛传电子版剧本第11-20集.doc VIP
- 辽2015T401-1 管道与设备绝热(一).pdf VIP
原创力文档


文档评论(0)