GCC编译器和GDB调试器常用选项
http://blog.csdn.net/u014328976/article/details/46745349
GCC编译器
gcc hello.c -o hello #将hello.c编译成hello可执行文件
gcc -E hello.c -o hello.i #将hello.c 转换成预处理后的文件hello.i
gcc -S hello.c -o hello.S #将hello.c 转换成汇编文件 hello.S
gcc -c hello.c -o hello.o #将hello.c 转换成二进制文件 hello.o
gcc -I dir hello.c -o hello # -I 后面加路径,指定在dir路径下寻找头文件
gcc -Wall hello.c -o hello #显示编译过程中所有的警告信息
gcc -g hello.c -o hello #带调试信息的程序,可以用GDB进行调试
gcc -v hello.c -o hello #显示执行编译阶段的命令.同时显示编译器驱动程序,预处理器,编译器的版本号
gcc -nostdinc -I dir hello.c -o hello #不要在标准系统目录中寻找头文件.只搜索`-I'选项指定的目录(以及当前目录)
编译静态链接库
gcc -c hello.c -o hello.o #先生成目标文件 .o
ar crv hello.a hello.o #打包为 .a 的静态链接库文件
gcc cxd.c -o cxd -L /root/desktop/hello.a #调用自己的静态链接库
编译动态链接库
gcc -fPIC -c hello.c #编译成位置无关的 .o 文件
gcc -shared hello.o -o hello.so #生成动态链接库
gcc cxd.c -o cxd -L /root/desktop/hello.so #调用自己的动态链接库
GDB调试器
注1:需要调试的程序在编译的时候要加 -g 选项,程序才能进行调试
注2:以下所有命令都可以简写首字母,例:info break ==> i b 除特殊声明外
#gdb program //进入调试模式
#list file.c:fanction //显示file.c文件中的fanction函数
#break file.c:fanction //在file.c文件中的fanction函数处打一个断点
#break file.c:100 //在file.c文件中的第100行打一个断点
#info break //查看所有断点
#delete break num //删除断点号为 num 的断点
#run //开始运行程序
#bt //显示程序的栈
#watch expr //监视 expr 变量,(每次运行到变量处就会打印变量的值)(watch 不能简写)
#print expr //打印处 expr 变量的值,(当前运行函数中的变量)
#c //继续运行程序
#next //单步运行
#quit //退出调试
GCC编译器和GDB调试器常用选项的更多相关文章
- gdb调试器在windows下的相关内容
1.gdb调试器在visual studio或dev c++中也有类似的调试图形化可视界面,但是gdb不同的是它是由命令行组成,他的界面对于习惯图形化可视界面的用户来说一时间会不知所措 2.通过gcc ...
- 使用GDB调试器(一)
使用GDB调试器 GDB概要---- GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软 ...
- Mac os系统gdb调试器的安装与使用
Mac os系统gdb调试器的安装与使用 1.简介 Mac os下的Terminal 终端中默认情况下并没有安装gdb调试器,但是可以通过gcc编译器进行代码编译,如果出错了就需要通过gdb调试器进行 ...
- linux基础2——gdb调试器
gdb调试器使用的一般步骤(不断更新完善): 1.编译过程中要用-g参数来添加调试符号——gcc test.c -g: 2.gdb启动可执行文件——gdb a.out: 3.出现gdb符号表示启动成功 ...
- Linux C 程序 函数,数组,指针,gdb调试器(SEVEN)
函数,数组,指针,gdb调试器 1.函数定义 如果明确指定返回类型,默认为int 参数传递:实参对形参的参数传递是单向的,实参只是把自己的值赋给形参. 形参的 ...
- Linux gdb调试器用法全面解析
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序. 让被调试的程序在工程师指定的断 ...
- Ubuntu下GDB调试器的使用
gdb调试器时一款GNU组织开发.发布的UNIX/Linux环境下的程序调试工具,没有图形界面,但功能强大. GDB使用流程: 先编写一个测试文件gdbTest.c 保存后用gcc对文件进行编译,需要 ...
- Linux——【转】gcc编译与gdb调试简要步骤
原文:gcc编译与gdb调试简要步骤 一.Linux程序gcc编译步骤: Gcc编译过程主要的4个阶段: l 预处理阶段,完成宏定义和include文件展开等工作:(.i) l 根据编译参数进行不同程 ...
- Linux环境下的GCC编译器与GDB调试工具介绍
假如现在我们有如下代码需要编译运行和调试.文件名为:test.c #include <stdio.h> int main() { int day, month, year, sum, le ...
随机推荐
- layer
一款实用的web提示框架!下面是实用这款框架的实例 html代码 <p class='layer_notice'>我们是否是好惹的</p> <input type=&qu ...
- 【转】去掉eclipse的validate
转载地址:http://www.blogjava.net/leisure/archive/2013/01/11/394087.html 困扰了好几天,与大家共享 1,在project名称上右键选择pr ...
- Java与.NET 的Web Services相互调用
一:简介 本文介绍了Java与.NET开发的Web Services相互调用的技术.本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用 ...
- poj3263 Tallest Cow
题意略去. 考虑给定的R对pair(A, B). 即A能看见B,这意味着B不比A低,并且区间内部的所有元素的高度严格小于A的高度. 我们规定区间的方向:若A > B,为反方向,反之称为正方向. ...
- 转载-python学习笔记之常用模块用法分析
内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(ob ...
- Poj(1274),二分图匹配
题目链接:http://poj.org/problem?id=1274 The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Tota ...
- Servlet基础简单总结(上)
Servlet基础一些简单总结(上): 1.Java Servlet是运行在Web服务器上的Java程序2.Java平台给Servlet开发者提供了强大的API/面向对象编程平台无关/强类型/垃圾回收 ...
- hibernate的like用法(用占位符解决)
原本我的写法:Query repeatClientQuery=querysession.createQuery("from ClientInfo as a " +"whe ...
- java学习容器
自己模拟ArrayList: private Object[] elementData; private int size; // 可以指定集合大小,默认10 public MyArrayList(i ...
- Mybatis like 模糊查询问题
1.mysql:LIKE CONCAT('%',#{empname},'%' ) 或者 LIKE CONCAT('%',‘${empname}’,'%' ) 2.oracle:LIKE '%'||#{ ...