GUN的相关使用
Posted 王小山的空间
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GUN的相关使用相关的知识,希望对你有一定的参考价值。
gcc[ option| filename ]...
1,描述
.c C 源程序; 预处理, 编译, 汇编
.C C++源程序; 预处理, 编译, 汇编
.cc C++源程序; 预处理, 编译, 汇编
.cxx C++源程序; 预处理, 编译, 汇编
.m Objective-C 源程序; 预处理, 编译, 汇编
.i 预处理后的 C 文件; 编译, 汇编
.ii 预处理后的 C++文件; 编译, 汇编
.s 汇编语言源程序; 汇编
.S 汇编语言源程序; 预处理, 汇编
.h 预处理器文件; 通常不出现在命令行上
.o 目标文件(Object file)
.a 归档库文件(Archive file)
除非使用了-c, -S, 或-E 选项( 或者编译错误阻止了完整的过程), 否则连接总是 最后的步骤.
在连接阶段中, 所有对应于源程序的.o 文件, -l 库文件, 无法识别的文件名( 包括指定的 .o 目
标文件和.a 库文件) 按命令行中的顺序传递给连接器.
2,选项
总体选项 -x language -c编译或汇编生成目标文件 —E预处理 —S编译后停止 -o指定输出 -g 产生调试信息 不加选择项生成的文件为 可执行文件
语言选项 -ansi
警告选项
调试选项 -g 产生调试信息
优化选项 -O -O1
预处理器选项 -include
汇编器选项
连接器选项
目录选项
目标机选项 -b i386v
配置相关选项
代码生成选项
3,文件(FILE)
file.c C 源文件
file.h C 头文件( 预处理文件)
file.i 预处理后的 C 源文件
file.C C++源文件
file.cc C++源文件
file.cxx C++源文件
file.m Objective-C 源文件
file.s 汇编语言文件
file.o 目标文件
a.out 连接的输出文件
TMPDIR/cc* 临时文件
LIBDIR/cpp 预处理器
LIBDIR/cc1 C 编译器
LIBDIR/cc1plus C++编译器
LIBDIR/collect 某些机器需要的连接器前端(front end) 程序
LIBDIR/libgcc.a GCC 子例程(subroutine) 库
/lib/crt[01n].o 启动例程(start-up)
LIBDIR/ccrt0 C++的附加启动例程
/lib/libc.a 标准 C 库, 另见 intro (3)
/usr/include #include 文件的标准目录
LIBDIR/include #include 文件的标准 gcc 目录
LIBDIR/g++-include #include 文件的附加 g++目录
LIBDIR 通常为/usr/local/lib/machine/version.
TMPDIR 来自环境变量 TMPDIR ( 如果存在, 缺省为/usr/tmp , 否则为 /tmp).
另见(SEE ALSO)
cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
info中 ` gcc‘, ` cpp‘, ` as‘, ` ld‘, 和` gdb‘ 的条目 .
Using and Porting GNU CC (for version 2.0) , Richard M. Stallman; The C
Preprocessor, Richard M. Stallman; Debugging with GDB: the GNU
Source-Level Debugger, Richard M. Stallman和Roland H. Pesch; Using as:
the GNU Assembler, Dean Elsner, Jay Fenlason & friends; ld: the GNU linker,
Steve Chamberlain和Roland Pesch.
4,GDB的使用
gcc -g main.c -o main
gdb main
list 1 //从第一行开始列出源代码
list
回车 //从第11行开始列出源代码
l main //l为list的缩写
quit//退出调试环境
start //开始调试 到mian的第一条停止
n(next) //执行下一条命令 跳过函数
s(step) //钻入函数中调试
bt(backtrace) //查看函数调用的栈帧
i(info) //查看函数局部变量的值
f(frame) //选择帧查看
p(print) //打印变量
finish //让程序运行从当前函数返回
set var sum=0 //不想放弃此次调试机会,在调试中直接更改变量参数
p sun=0 //也可以用print来修改变量的值或者调用参数
以上是关于GUN的相关使用的主要内容,如果未能解决你的问题,请参考以下文章