Linux下GCC程序开发环境.ppt

上传人:tia****nde 文档编号:12806105 上传时间:2020-05-25 格式:PPT 页数:30 大小:1MB
返回 下载 相关 举报
Linux下GCC程序开发环境.ppt_第1页
第1页 / 共30页
Linux下GCC程序开发环境.ppt_第2页
第2页 / 共30页
Linux下GCC程序开发环境.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
Linux系统C语言程序设计,教师:胡青,第二章Linux系统下GCC编程开发环境,二一二年九月,目录,Linux系统下GCC概述,1,2,利用GCC编译第一个程序,3,GCC编译多个组合程序,5,GCC下程序调试,6,集成化开发环境geany,4,GCC下make管理程序,Linux系统下GCC概述,1、概述(1)GCC安装验证Ubuntu系统安装后GCC通常并不是默认安装,此种情况下可以通过编写简单程序进行测试,如:#includeIntmain(void)printf(“helloFirstLinuxProgrammer!/n”);return0;,Linux系统下GCC概述,1、概述(1)GCC安装验证存储文件hello.c;打开terminal终端,输入指令:gcchello.cohello如果没有错误返回则证明GCC已经安装,否则需要进行手动安装。也可以直接用指令检测:$:gccversion输出根据版本不同而不同。,Linux系统下GCC概述,1、概述(2)GCC安装1)确认网络正常连接;2)在终端界面中输入指令:sudoapt-getinstallbuild-enssential或sudoapt-getinstallgcc3)中间需要输入两次或一次:Y后就会自动安装。4)安装完毕用验证指令进行验证即可。,Linux系统下GCC概述,1、概述(3)GCC编译处理流程,目录,Linux系统下GCC概述,1,2,利用GCC编译第一个程序,3,GCC编译多个组合程序,5,GCC下程序调试,6,集成化开发环境geany,4,GCC下make管理程序,利用GCC编译第一个程序,1、建立第一个程序利用文本文件,编写第一个大家好程序如下:#includeIntmain(void)printf(“hello大家好!n”);return0;程序名称存为”hello.c”,Linux系统下GCC概述,2、GCC常用编译指令1)无选项编译链接用法:$gcchello.c作用:将hello.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。2)选项-o用法:$gcchello.c-ohello作用:将hello.c预处理、汇编、编译并链接形成可执行文件hello(可自定义名称)。-o选项用来指定输出文件的文件名。3.选项-E(大写)用法:$gcc-Ehello.c-ohello.i作用:将hello.c预处理输出hello.i文件。,Linux系统下GCC概述,2、GCC常用编译指令4)选项-S(大写)用法:$gcc-Shello.i作用:将预处理输出文件hello.i汇编成hello.s文件。5)选项-c用法:$gcc-chello.s作用:将汇编输出文件hello.s编译输出hello.o文件。6)无选项链接用法:$gcchello.o-ohello作用:将编译输出文件hello.o链接成最终可执行文件hello。,Linux系统下GCC概述,2、GCC常用编译指令7)选项-O(大写)用法:$gcc-O1hello.c-ohello作用:使用编译优化级别1编译程序。级别为13,级别越大优化效果越好,但编译时间越长。8)选项-Wall用法:$gccWallhello.cohello1作用:能够显示所有的警告信息,以便于修改调试。,目录,Linux系统下GCC概述,1,2,利用GCC编译第一个程序,3,GCC编译多个组合程序,5,GCC下程序调试,6,集成化开发环境geany,4,GCC下make管理程序,GCC编译多个组合程序,1、编写多组合文件代码1)声明头文件:Mhello.h/*hello输出主函数声明*/inthelloOut(void);2)编写函数主题文件:Mhello.c/*hello输出主函数原型函数*/#includeinthelloOut(void)printf(hello,大家好!n);return0;,GCC编译多个组合程序,1、编写多组合文件代码3)编写主函数:helloTest.c/*主函数调用hello输出*/#includeMhello.hintmain(void)returnhelloOut();,GCC编译多个组合程序,2、编译测试1)直接编译指令:$gcchelloTest.cMhello.cohelloTest2)分别编译后再进行链接$gcc-cMhello.c/将Mhello.c编译成Mhello.o#gcc-chelloTest.c/将helloTest.c编译成helloTest.o#gcc-oMhello.ohelloTest.o-ohelloTest/将Mhello.o和helloTest.o链接成helloTest,目录,Linux系统下GCC概述,1,2,利用GCC编译第一个程序,3,GCC编译多个组合程序,5,GCC下程序调试,6,集成化开发环境geany,4,GCC下make管理程序,GCC下make管理程序,1、make作用1)复杂程序项目,手工编译很难处理,如上千个文件的系统,必须通过一种工具进行管理。2)make命令就是起这一作用的。3)make命令执行后,根据makefile文件指令进行自动编译。4)make命令能够自动判断更新文件进行编译,而不处理没有修改过的文件。5)重点是makefile文件的编写十分重要。,GCC下make管理程序,2、makefile编写规则1)makefile中可以有多种规则,每条可规则告诉make编译那些文件、怎样编译以及在什么条件下编译。2)每条规则需包含如下内容:一个“目标体”(target),即make最终要创建的东西。包含一个或多个“依赖体”(dependency)的列表,依赖体通常是编译目标体需要的其他文件。为了从指定的依赖体所需执行的“命令”(command)的列表。,GCC下make管理程序,2、makefile编写规则3)每条规则通用形式如下:target:dependency1dependency2commandcommand4)Makefile中只认制表符(tab键缩进),不识空格。5)没有依赖体的可以作为make的“伪目标”6)在make文件中也可以定义变量和宏等。,GCC下make管理程序,3、makefile编写示例生成makefile文件如下:1)helloTest:helloTest.oMhello.oMhello.hgcchelloTest.oMhello.o-ohelloTest2)Mhello.o:Mhello.cMhello.hgcc-cMhello.c3)helloTest.o:helloTest.cgcc-chelloTest.c4)hello:hello.cgcchello.c-ohello5)all:helloTesthello6)clean:rmhelloTesthello*.o,目录,Linux系统下GCC概述,1,2,利用GCC编译第一个程序,3,GCC编译多个组合程序,5,GCC下程序调试,6,集成化开发环境geany,4,GCC下make管理程序,GCC下程序调试,1、gbd命令介绍gbd命令集在Linux下是与make指令系统并列的gcc下调试工具指令。全称为“GNUbugdebuger”具有全系列调试程序的各种指令和方法。gbd安装:sudoapt-getinstallgdb2、常用gbd命令1)backtrace显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)2)breakpoint在程序中设置一个断点3)cd改变当前工作目录4)clear删除刚才停止处的断点5)commands命中断点时,列出将要执行的命令6)continue从断点开始继续执行,GCC下程序调试,2、常用gbd命令7)delete删除一个断点或监测点;也可与其他命令一起使用8)display程序停止时显示变量和表达时9)down下移栈帧,使得另一个函数成为当前函数10)frame选择下一条continue命令的帧11)info显示与该程序有关的各种信息12)jump在源程序中的另一点开始运行13)kill异常终止在gdb控制下运行的程序14)list列出相应于正在执行的程序的原文件内容15)next执行下一个源程序行,从而执行其整体中的一个函数,GCC下程序调试,2、常用gbd命令16)print显示变量或表达式的值17)pwd显示当前工作目录18)pype显示一个数据结构(如一个结构或C+类)的内容19)quit退出gdb20)reverse-search在源文件中反向搜索正规表达式21)run执行该程序22)search在源文件中搜索正规表达式,GCC下程序调试,2、常用gbd命令23)setvariable给变量赋值24)signal将一个信号发送到正在运行的进程25)step执行下一个源程序行,必要时进入下一个函数26)undisplaydisplay命令的反命令,不要显示表达式27)until结束当前循环28)up上移栈帧,使另一函数成为当前函数29)watch在程序中设置一个监测点(即数据断点)30)whatis显示变量或函数类型,目录,Linux系统下GCC概述,1,2,利用GCC编译第一个程序,3,GCC编译多个组合程序,5,GCC下程序调试,6,集成化开发环境geany,4,GCC下make管理程序,集成化开发环境geany,1、geany概述Geany是一个使用GTK2工具包开发的快速和轻巧的集成开发环境(IDE),包括以下基本功能:语法高亮显示,代码折叠,代码自动补完,自动补完经常使用的结构(如:if、for、while等),自动补完XML和HTML标记(tag),调用提示,支持C、C+、Java、PHP、HTML、Python、Perl、Pascal等语言,符号列表等等。支持各种编译指令,以gtk开发包为基础。,集成化开发环境geany,2、geany安装1)直接在软件中心安装,简单。2)运行sudoapt-getinstallgeany指令3)纯Linux下安装需要如下过程:下载安装包:gitclonegit:/./wafconfigure,期间会告诉各种开发包的缺少情况,需要手动安装。./wafbuildpk./wafinstall,集成化开发环境geany,3、geany界面,本课结束,谢谢!,胡青:13387889389,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!