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 ...
随机推荐
- 怎样新建Oracle数据库
新建Oracle数据库三种方法:1.通过运行Oracle Database Configuration Assistant 创建配置或删除数据库(也可在命令行下输入dbca):2.用命令行的方式建立数 ...
- mysql之使用xtrabackup进行物理备份、恢复、在线克隆从库、在线重做主从
注:图片来自<深入浅出MySQL 数据库开发 优化与管理维护 第2版> 物理备份和恢复 1.冷备份:停掉mysql再备份,一般很少用,因为很多应用不允许长时间停机,停机备份的可以直接CP数 ...
- java 23种设计模式及具体例子 收藏有时间慢慢看
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代 码可靠性. 毫无疑问,设计模式 ...
- PMO终究什么样?(2)
PMO终究什么样?(2) 接上一篇,继续聊一聊PMO终究什么样. 交给功用,8大典型职责 1监控.鉴定和陈述 项目处理单位从交给的角度一定要有监控鉴定.每个项目在关键的时期上它的发展是不是跟如期的一样 ...
- Maximum Value(哈希)
B. Maximum Value time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- Unity Adam特性整理
1.Wind 小工具,一个绘制箭头Gizmos的脚本 2.TubeLight柱形光照 蛮NB的技术,实现动态柱状光照,但相机必须挂上PostProcessing 默认场景拖出来之后是这样的,然后给相机 ...
- 2016年11月26日 星期六 --出埃及记 Exodus 20:17
2016年11月26日 星期六 --出埃及记 Exodus 20:17 "You shall not covet your neighbor's house. You shall not c ...
- 配置Python+selenium+firefox自动化测试
1.安装python.默认安装 2.安装pip.下载pip-1.5.4包,解压pip-1.5.4,放在C盘,进入pip目录-->键入命令:python setup.py install 再进入 ...
- 扩展duilib edit控件的提示功能和多种文字颜色(解决edit为password显示不正常的bug)
参考博客:Redrain 转载:http://blog.csdn.net/zhuhongshu/article/details/41786407 在Redrain博客的基础上做了修改 1.CEditU ...
- UVA 607 二十二 Scheduling Lectures
Scheduling Lectures Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submi ...