LINUX编译与调试.ppt
《LINUX编译与调试.ppt》由会员分享,可在线阅读,更多相关《LINUX编译与调试.ppt(24页珍藏版)》请在三一办公上搜索。
1、第一章 LINUX下编译与调试,学习目标,gcc/g+编译命令,对于.c格式的C文件,可以采用gcc或g+编译对于.cc、.cpp格式的C+文件,应该采用g+进行编译常用的选项两种-c 表示编译源文件-o 表示输出目标文件-g 在目标文件中产生调试信息,用于gdb调试-D 编译时将宏定义传入进去-Wall 选项可以打开所有类型的语法警告,以便帮助我们确定代码是正确的,并且尽可能实现可移植性。,编译和连接的方式,1、g+-c func.cpp将编译func.cpp,并且生成同名的但扩展名为.o的二进制目标文件 func.o同样道理g+-c main.cpp将编译main.cpp,并且生成同名的但
2、扩展名为.o的二进制目标文件 main.o2、g+-c func.cpp-o func.o功能同(1)一样,但是显式地指定了输出文件名为main.o 同样道理g+-c main.cpp o main.o编译main.cpp,并输出目标文件main.o3、(1)、(2)的基础上g+main.o func.og+-o a.out main.o func.og+-o a.out*.o都将连接目标文件main.o和func.o最后形成可执行文件a.out对于第一种,如果没有显式指定可执行文件名,g+默认为a.out,编译和连接的方式,也可以将编译和链接的过程合为一块处理:g+*.cppg+func.c
3、pp main.cppg+-o a.out func.cpp main.cpp都将先编译指定的源文件,如果成功的话,再链接成可执行文件a.out采用第4种方式,在其中第某个源文件中必须有main函数,否则链接通不过。如果希望在编译时传入宏定义,可使用-D参数,例如g+-D _DEBUG*.cpp,什么是makefile,makefile的工作过程为:先将需要编译连接的c/c+源文件组织到文件makefile中,接着运行make程序,make程序读取当前文件夹下面的makefile文件信息,并根据makefile里面的组织信息,调用相应的gcc/g+/shell等程序,完成对源文件的批量编译和连
4、接。要写makefile文件,首页必须清楚目标文件和依赖文件的概念。通常情况下,目标文件和依赖文件都是指实际的文件。例如,有makefile文件,内容如下:main.exe:main.o func.og+-o main.exe main.o func.omain.o:main.cppg+-c main.cppfunc.o:func.cppg+-c func.cpp,Makefile文件的依赖关系,文件第一行中的文件main.exe称为目标文件,冒号后面以空格分隔的两个文件称为main.exe的依赖文件。意思是文件main.exe的产生依赖于文件main.o和func.o同样道理:第3行的mai
5、n.o为目标文件,main.cpp为main.o的依赖文件。第5行的func.o为目标文件,func.cpp为func.o的依赖文件.第2行(以tab开头)表示要产生第1行的目标文件需要执行的命令。,make程序的处理过程,make程序首先读到第1行的目标文件main.exe和它的两个依赖文件main.o和func.o;然后比较文件main.exe和main.o/func.o的产生时间,如果main.exe比main.o/func.o旧的话,则执行第2条命令,以产生目标文件main.exe。在执行第2行的命令前,它首先会查看makefile中的其他定义,看有没有以第1行main.o和func.
6、o为目标文件的依赖文件,如果有的话,继续按照(1)、(2)的方式匹配下去。根据(2)的匹配过程,make程序发现第3行有目标文件main.o依赖于main.cpp,则比较目main.o与它的依赖文件main.cpp的文件新旧,如果main.o比main.cpp旧,则执行第4行的命令以产生目标文件main.o.在执行第4条命令时,main.cpp在文件makefile不再有依赖文件第定义,make程序不再继续往下匹配,而是执行第4条命令,产生目标文件main.o目标文件func.o按照上面的同样方式判断产生.执行(3)、(4)产生完main.o和func.o以后,则第2行的命令可以顺利地执行了,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LINUX 编译 调试
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6511368.html