一、gcc:
在使用gcc编译程序时,编译过程可以细分为4个阶段:
● 预处理(Pre-Processing)
● 编译(Compiling)
● 汇编(Assembling)
● 链接(Linking)
gcc -E 预处理
gcc -C 编译以o为后缀的目标文件
gcc -o 确定可执行文件的名称
gcc -g 对程序进行调试
gcc -O 作优化
gcc -S 作汇编
gcc -D 作宏定义
gcc -U 取消宏定义
gcc -C 不删除注释信息
gcc -I 指出包含文件的路径
gcc -L 按库查找对应的路径
gcc -l 按路径查找对应的库
使 用 gcc
gcc的版本可以使用如下gcc –v命令查看:
[david@DAVID david]$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs
Configured with: …/configure --prefix=/usr --mandir=/usr/share/man
–infodir=/
sr/share/info --enable-shared --enable-threads=posix
–disable-checking --with-
ystem-zlib --enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
以上显示的就是Redhat linux 9.0里自带的gcc的版本3.2.2。
下面将以一个实例来说明如何使用gcc编译器。例3-1能够帮助大家迅速理解gcc的工作原理,并将其立即运用到实际的项目开发中去。
二、gdb:
主要分为三个步骤:
1、启动被调试程序
2、设置指定位置
3、检查指定位置是否有问题
gdb调试命令:
break [file:]function
设置一个断点在函数中(在文件中)
run [arglist]
启动程序带上指定的参数
bt Backtrace:
显示堆栈
print expr
显示表达式的值
c
继续执行你的程序(程序停住后,例如:在断点处停止) next
执行程序的下一行代码(程序停止以后);跨国任何当前行的函数调用。
edit [file:]function
查看当前程序停在哪。
list [file:]function
显示程序当前停住的代码行附近的代码
step 单步调试
执行程序的下一行(程序停住后),进入当前行的函数调用的内部 help [name]
显示gdb命令的相关信息。
quit
退出gdb需要详细的gdb说明,查看using gdb:一个gdb调试程序的指南,stallmain和roland写的,也有可用的在线文档作为gdb入口在gdb项目信息中。
make:
一、make简介
make是一个指令工具,它解释makefile中的指令或者说规则。makefile文件描述了整个工程中所有文件的编译顺序,编译规则。Makefile也有自己的编写规则,通常,我们所使用的IDE都会生成相应的makefile,然后再根据makefile来进行编译,只是这些操作是由IDE来完成,我们只需要点击一个编译按钮。
三、makefile简介
在我们执行make之前,需要有一个名为makefile或Makefile的文件。这个文件用来告诉make需要完成什么样的操作。我们可以简单的把makefile认为是一份定义了源文件间依赖关系、如何编译各个源文件并生成可执行文件的说明书。
$( ) 取括号中变量的值
$^ 代表所有的依赖文件
$@ 代表目标
$< 代表第一个依赖文件