《2-Linux 下的 C 编程基础.ppt》由会员分享,可在线阅读,更多相关《2-Linux 下的 C 编程基础.ppt(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 嵌入式操作系统广州学院广东科学技术职业学院Linux下的C编程基础解决的问题:如何在Linux系统下开发C语言程序解决问题的具体步骤:l使用vi编辑器编辑源程序l使用gcc编译器编译源程序l使用gdb调试器调试程序l自动化编译(makefile文件和make工具)嵌入式操作系统广州学院广东科学技术职业学院使用VI编辑源程序编辑以下源程序helloworld.c/*测试例子*/#includestdio.hmain()printf(Hello,World!n);嵌入式操作系统广州学院广东科学技术职业学院gcc编译选项与文件对应的关系预处理链接编译组译源程序(*.i)(*.s)(*.o)可执行代
2、码(*.c)-E-S-c-o处理流程编译选项文件类型 嵌入式操作系统广州学院广东科学技术职业学院编译器gcc编译helloworld.c源程序编译:gccohelloworldhelloworld.c运行:./helloworld 嵌入式操作系统广州学院广东科学技术职业学院gdb调试器解决问题:只能调试找出运行出错的程序两个例子:1、如何找出运行出错的程序2、如何调试运行结果与预期结果不同的程序 嵌入式操作系统广州学院广东科学技术职业学院自动化编译(makefile+make)Makefile规则的一般形式如下:target:dependencydependency(tab)编译hellowo
3、rld.c的makefile文件:helloworld:helloworld.cgccohelloworldhelloworld.cclean:rmfhelloworld此时编译helloworld.c:输入命令:#make实现编译 嵌入式操作系统广州学院广东科学技术职业学院变量的定义和使用Makefile中的变量是用一个文本串在Makefile中定义的,这个文本串就是变量的值。只要在一行的开始写下这个变量的名字,后面跟一个“”号,以及要设定这个变量的值即可定义变量,下面是定义变量的语法:VARNAME=string使用时,把变量用括号括起来,并在前面加上$符号,就可以引用变量的值:$VARN
4、AMEmake解释规则时,VARNAME在等式右端展开为定义它的字符串。变量一般都在Makefile的头部定义。按照惯例,所有的Makefile变量都应该是大写。如果变量的值发生变化,就只需要在一个地方修改,从而简化了Makefile的维护。嵌入式操作系统广州学院广东科学技术职业学院GNUmake的一些预定义变量$*不包含扩展名的目标文件名称。$+所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。$第一个依赖文件的名称。$?所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。$目标的完整名称。$所有的依赖文件,以空格分开,不包含重复的依赖文件。$%如果目
5、标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为mytarget.so(image.o),则$为mytarget.so,而$%为image.o。AR归档维护程序的名称,默认值为ar。ARFLAGS归档维护程序的选项。AS汇编程序的名称,默认值为as。ASFLAGS汇编程序的选项。嵌入式操作系统广州学院广东科学技术职业学院复杂的一点例子CC=gccstar:star.ohello.ogccostarstar.ohello.ostar.o:star.cstarfun.hgcccstar.chello.o:hello.chello.hgccchello.cclean:Rmf*.ostarCC=gccstar:star.ohello.ogcc-o$clean:Rmf*.ostar.c.o:gcc-c$star.o:star.cstarfun.hgcc-c$hello.o:hello.chello.hgcc-c$嵌入式操作系统广州学院广东科学技术职业学院结论VC=vi+gcc+gdb+makefile