Linux程序的编写、编译、调试方法及make.doc
《Linux程序的编写、编译、调试方法及make.doc》由会员分享,可在线阅读,更多相关《Linux程序的编写、编译、调试方法及make.doc(4页珍藏版)》请在三一文库上搜索。
1、Linux程序的编写、编译、调试方法及make1.建一个目录view plcopy to clipboard#includestdio.hmain()printf(HelloLinux.n)#includestdio.h main()printf(Hello Linux.n)记得最后一定要换行3.编译gcc-ohellohello.c使用gcc编译器就会为我们生成一个hello的可执行文件4.输出执行./hello就可以看到程序的输出结果了.是不是很简单?命令行中gcc表示我们是用gcc来编译我们的源程序,-o选项表示我们要求编译器给我们输出的可执行文件名为hello而hello.c是我们的源
2、程序文件.gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了.-o选项我们已经知道了,表示我们要求输出的可执行文件名.-c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件.-g选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息.知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说明.下面我们来演示怎样用GDB来调试一个求0+1+2+3+99的程序:/* Filename:hello.c */#include stdio.hmain()int i, sum;sum =
3、 0;for (i = 0; i 执行如下命令编译hello.c(加-g选项产生debug信息):#gcc g ohello sum.c在命令行上键入gdb hello并按回车键就可以开始调试sum了,再运行run命令执行sum#gdb hellolist命令用于列出源代码,对上述程序两次运行list,将出现如上画面(源代码被标行号)。根据列出的源程序,如果我们将断点设置在第5行,只需在gdb 命令行提示符下键入如下命令设置断点:(gdb) break 5设置断点的另一种语法是 break ,它在进入指定函数(function)时停住。相反的,clear用于清除所有的已定义的断点,clear
4、清除设置在函数上的断点, clear 则清除设置在指定行上的断点。watch命令:watch命令用于观查变量或表达式的值,我们观查sum变量只需要运行watch sumwatch 为表达式(变量)expr设置一个观察点,一量表达式值有变化时,程序会停止执行。要观查当前设置的watch,可以使用info watchpoints命令。next、step命令:next、step用于单步执行,在执行的过程中,被watch变量的变化情况将实时呈现(分别显示Old value和New value)next、step命令的区别在于step遇到函数调用,会跳转到到该函数定义的开始行去执行,而next则不进入到
5、函数内部,它把函数调用语句当作一条普通语句执行。5.Makemake是所有想在Linux系统上编程的用户必须掌握的工具,对于任何稍具规模的程序,我们都会使用到make,几乎可以说不使用make的程序不具备任何实用价值。在此,我们有必要解释编译和连接的区别。编译器使用源码文件来产生某种形式的目标文件(object files),在编译过程中,外部的符号参考并没有被解释或替换(即外部全局变量和函数并没有被找到)。因此,在编译阶段所报的错误一般都是语法错误。而连接器则用于连接目标文件和程序包,生成一个可执行程序。在连接阶段,一个目标文件中对别的文件中的符号的参考被解释,如果有符号不能找到,会报告连接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 程序 编写 编译 调试 方法 make
链接地址:https://www.31doc.com/p-3255400.html