linux软件工程师C语言实用教程学习教案_第1页
linux软件工程师C语言实用教程学习教案_第2页
linux软件工程师C语言实用教程学习教案_第3页
linux软件工程师C语言实用教程学习教案_第4页
linux软件工程师C语言实用教程学习教案_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1linux软件软件(run jin)工程师工程师C语言实用教程语言实用教程第一页,共38页。2第1页/共38页第二页,共38页。3输入完成输入完成(wn chng)后存盘:按后存盘:按ESC键键输入输入“:wq”回回车车 第2页/共38页第三页,共38页。4这是第一个这是第一个Linux c程序程序!第3页/共38页第四页,共38页。5最后一种情况(qngkung)目标文件名默认为:c.out第4页/共38页第五页,共38页。6思考题:设计一个程序思考题:设计一个程序(chngx),要求在屏,要求在屏幕上输出幕上输出:* * *第5页/共38页第六页,共38页。7gcc是可以在多种硬体

2、平台上编译出可执行程序的超级(choj)编译器,其执行效率与一般的编译器相比,平均效率要高20%30%。gcc支持编译的后缀名:第6页/共38页第七页,共38页。8格”;若成绩小于60分,显示“不及格”。第7页/共38页第八页,共38页。9第8页/共38页第九页,共38页。10思考题:设计一个程序,要求输入思考题:设计一个程序,要求输入(shr)一个数,一个数,如果此数大于如果此数大于0,显示,显示“输入输入(shr)的为正数的为正数”,否,否则显示则显示“输入输入(shr)的为负数的为负数”。第9页/共38页第十页,共38页。11第10页/共38页第十一页,共38页。12第11页/共38页第

3、十二页,共38页。133.s步骤步骤 4:汇编阶段汇编阶段rootlocalhost root#gcc 1-3.s o 1-3.o c第12页/共38页第十三页,共38页。14注意:注意:gcc在编译的时候默认在编译的时候默认(mrn)使用动态链接使用动态链接库,编译链接时并不把库文件的代码加入到可执行库,编译链接时并不把库文件的代码加入到可执行文件中,而是在程序执行的时候动态加载链接库文件中,而是在程序执行的时候动态加载链接库,这这样可以节省系统开销。样可以节省系统开销。第13页/共38页第十四页,共38页。15第14页/共38页第十五页,共38页。16 当头文件与当头文件与gcc不在同一目

4、录下要用不在同一目录下要用-I dir编译,它是指编译,它是指头头(zh tou)文件,而添加库文件时需用文件,而添加库文件时需用-L dir参数。参数。第15页/共38页第十六页,共38页。174.c第16页/共38页第十七页,共38页。18 步骤步骤 3:正常正常(zhngchng)编译编译1-4.c文件:文件: rootlocalhost root#gcc 1-4.c o 1-4 编译器提示出错。编译器提示出错。 步骤步骤 4:加加“-I dir”参数参数(cnsh)编译:编译: rootlocalhost root#gcc 1-4.c o 1-4 I /root注意:在include语

5、句中,“”表示在默认路径“/usr/include”中搜索头文件,引号“” ”表示在本目录中搜索。因此,前面例子中把1-3.c中的“#include ”改成“#include “my.h”,就不需要“-I dir”参数也能正确编译了。第17页/共38页第十八页,共38页。19 putchar函数(hnsh)说明 思考题:此例能不能用前思考题:此例能不能用前面的面的printf函数函数(hnsh)和和scanf函数函数(hnsh)?如果可以,要如何改写程如果可以,要如何改写程序?序?第18页/共38页第十九页,共38页。20l”指定链接库文件时可以省去指定链接库文件时可以省去l、i、b三个字母。

6、也就是说三个字母。也就是说“-llibsunq”有时候写成有时候写成“-lsunq”。第19页/共38页第二十页,共38页。21第20页/共38页第二十一页,共38页。22原因是需要指定函数的具体(jt)路径,要查找函数sin,输入:rootlocalhost root# nm -o /lib/*.so|grep sin第21页/共38页第二十二页,共38页。23 在/lib/libm-2.3.2.so:00008610 W sin中除去函数库头lib及函数的版本号-2.3.2,所余下的符号为“m”,在编译时用字符“l”与余下的符号“m”相连接成“lm”,在编译时加上此参数就能正确地通过编译,

7、即: rootlocalhost root# gcc 1-6.c o 1-6 -lm 步骤(bzhu) 3:运行程序 rootlocalhost root#./1-6注意(zh y):Linux下动态链接库默认后缀名“.so”,静态链接库默认后缀名“.a”。第22页/共38页第二十三页,共38页。24第23页/共38页第二十四页,共38页。25第24页/共38页第二十五页,共38页。26rootlocalhost root#gcc 1-7.c o 1-7 pedantic步骤步骤 5:允许发出允许发出gcc提供的所提供的所有有用的告警信息有有用的告警信息rootlocalhost root#g

8、cc 1-7.c o 1-7 Wall第25页/共38页第二十六页,共38页。27通常来说,数字越大优化的等级通常来说,数字越大优化的等级越高,同时也就意味着程序的运越高,同时也就意味着程序的运行速度越快。行速度越快。第26页/共38页第二十七页,共38页。28第27页/共38页第二十八页,共38页。29译。译。rootlocalhost root#gcc 1-8.c o 1-8 O2步骤步骤 5:再统计优化后的程序运再统计优化后的程序运行时所需要的时间。行时所需要的时间。rootlocalhost root#time ./1-8步骤步骤 6:对比两次执行的输出结对比两次执行的输出结果。果。第

9、28页/共38页第二十九页,共38页。30第29页/共38页第三十页,共38页。31过gcc编译生成可执行文件才能用gdb进行调试。第30页/共38页第三十一页,共38页。32第31页/共38页第三十二页,共38页。33注意:注意:gdb是命令是命令(mng lng)行行调试环境,调试程序都在提示符调试环境,调试程序都在提示符“(gdb)”后输入相应的命令后输入相应的命令(mng lng),gdb的命令的命令(mng lng)很很多,可以在提示符多,可以在提示符“(gdb)”后输后输入入help进行查找。进行查找。常用(chn yn)的gdb命令 第32页/共38页第三十三页,共38页。34注

10、意:注意:gdb命令命令“l”(list)列出列出源代码的时候,要确保原来源代码的时候,要确保原来的源程序还在,如果读者以的源程序还在,如果读者以为这象反汇编一样给出代码为这象反汇编一样给出代码,那就错了,其实只是列出,那就错了,其实只是列出源文件的内容。源文件的内容。特别提示:特别提示:“list”+行号:查行号:查看指定看指定(zhdng)位置的代码位置的代码,如,如“list 1”就是从第一行开就是从第一行开始列出源代码。始列出源代码。(2)设置断点在gdb中设置断点命令是“b”(break),后面跟行号或者(huzh)函数名。如:(gdb) b 10 第33页/共38页第三十四页,共3

11、8页。35注意注意(zh y):gdb在一个程序中可以设置多个断点在一个程序中可以设置多个断点,有多个断点中断时,有多个断点中断时,“Num”处显示断点序号。处显示断点序号。(4)运行程序(chngx):输入“r”(run)开始运行程序(chngx)。注意:注意:gdb默认从第一行开始运行,如果要从程序中默认从第一行开始运行,如果要从程序中指定行开始运行,只需输入指定行开始运行,只需输入“r”+行号。行号。(5)查看变量值程序运行到断点处会自动暂停,输入“p 变量名” 第34页/共38页第三十五页,共38页。36注意:查看变量值,不能在程序注意:查看变量值,不能在程序(chngx)结束后。结束后。第35页/共38页第三十六页,共38页。37(8)退出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论