Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143461
  • 博文数量: 8
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-05 09:40
文章分类

全部博文(8)

文章存档

2009年(2)

2008年(6)

我的朋友

分类: C/C++

2008-05-22 20:55:54

转眼已经22了,最近发生好多事,地震啊,还有拍毕业照。还有写实习报告,还整理了1月份以来的资料和日记。没想到时间过得可真快,原打算1天发一篇笔记的,竟然没有坚持下去。自身的缺点又是那么多,不知道什么时候才能实现自己的梦想。为梦想努力吧,一切都会好起来 的。muse转过来的,格式有点乱了。呵呵。

gcc 简介

gcc的编译过程原理:

gcc调用预处理程序cpp,负责展开源文件中的宏,向其中插入#include所包含的内容,调用ccl和as将处理后的源代码编译成目标代码;最后,gcc调用链接程序ld,把生成的目标代码链接成一个可执行文件。gcc的编译过程分为四个阶段:

1. 预处理阶段
gcc -E hello.c -o hello.i

2.编译

gcc -c hello.i -o hello.o

3. 汇编

4.链接

gcc -o hello.o hello

gcc警告提示

gcc -pedantic bad.c -o bad 会把不符合标准的错误显示出来。
gcc -Wall bad.c -o bad 产生尽可能多的警告信息
gcc -Werror bad.c -o bad 将警告作为错误,使编译不能继续。

库依赖

头文件一般在/usr/include/而库文件一般在/usr/lib/目录gcc a.c -I /home/a/include -o a 大I代表的是头文件的目录gcc a.c -L /home/a/lib -ldav -o a 大L代表库文件搜索目录,-ldav代表搜索libdav的库文件。linux下的库文件分为两类:静态库文件: .a动态库文件: .sogcc优先使用动态为文件,也可以用-static来强制使用静态库文件

gdb使用

gcc -g t.c -o t g选项代表在编译出的源文件中加入调试信息gdb t 载入thelp 显示帮助break 设断点,断点支持b 15 b maininfo break显示断点信息,info reg显示寄存器信息 info stack显示栈信息或用bt代替step 单步执行,入callnext 过callc 继续r 重新载入程序p i 打印变量i的值finish 执行到函数返回q 退出file t 载入程序t修改变量值whatis i 显示i的类别p i 显示i的值set var i=4 设置i为4

set language 当前调试语言set language java 调试java程序时,需要设语言为java

阅读(837) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~