![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开发工具
文章平均质量分 76
LifeProgramming
这个作者很懒,什么都没留下…
展开
-
从源文件到可执行程序
<br />gcc将源代码文件处理成可执行程序,要经过四个过程:预处理——编译——汇编——链接。<br /><br /> 1、预处理<br /> 预处理过程主要处理的是#include、#define、#if、#else、#ifdef、#endif等指令以及处理注释、行号(用于调试)等工 作。<br /> 这里假设源文件包括source.c以及其包含的所有头文件。执行下面的命令可以指示编译器在完成预处理过程后停止。<br /> $gcc -E source.c -o source.i<br /><原创 2011-01-03 21:08:00 · 1576 阅读 · 0 评论 -
从源文件到可执行程序(二)
关于目标文件 源程序经过编译器编译后生成目标文件。目标文件的格式基本和可执行文件相同,只是在进行链接之前,有些符号和函数的地址是未知的,还需要经过链接来进行调整。Linux系统中采用的可执行文件格式是ELF,因此目标文件也采用这种格式进行存储。不光目标文件,静态库文件(其实就是多个目标文件以及一些索引)和动态库文件也都采用这种格式进行存储。使用命令file可以查看文件格式。 $ file example.o example.o: ELF 32-bit LSB relocatable, Intel 80原创 2011-01-04 10:40:00 · 791 阅读 · 0 评论 -
初学用make进行项目管理
Make是Linux下的项目管理工具,其作用就是自动进行程序的编译和链接,从而生成指定的目标程序。其工作时的执行步骤如下, (1)读入所有的Makefile (2)读入被include的其他Makefile(后面有解释) (3)初始化文件中的变量 (4)推到隐式规则,然后分析所有规则 (5)为所有目标创建依赖关系链 (6)根据依赖关系,决定生成那些目标 (7)执行命令 其规则格式一般为 目标文件 : 依赖文件 执行命令(生成目标文件,本行必须以Tab键开头) 其中目标文件可以是原创 2011-01-03 21:11:00 · 1055 阅读 · 0 评论 -
用gdb调试程序
GDB是个牛人写的一个很牛的调试器,虽然是命令行的,但是功能强大,习惯了就会非常喜欢,就像vim那样。如果你还是傻傻的通过printf语句来调试程序,赶紧行动起来,GDB是你很好的选择。所谓调试程序,无非就是一个确认的过程,代码是正确的?错误的?在这个过程中出现任何问题都很正常,==写成了=?使用了空指针?不管问题多么弱智,都不能证明自己有多弱智,没有出过错误的程序员是那些从来不写代码的程序员。原创 2011-01-05 23:33:00 · 939 阅读 · 0 评论 -
用gdb调试程序(二)
<br />变量的追踪<br /> <br />struct people{<br /> int age;<br /> int num;<br />};<br /> <br />struct people * you;<br /> <br />调试程序时,总是想观察某个数据的值,使用print可以输出某个变量的值,当然,你也可以输出某个结构体的值,前提是你有一个指向该结构体的指针p。如<br /> <br />使用print/p<br />则,只要在合适的断点处,使用下面的命令,就可以输出这个结原创 2011-01-08 14:24:00 · 852 阅读 · 0 评论