GCC编译器和GDB调试器常用选项
2015-07-03 20:10
267 查看
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 //退出调试
相关文章推荐
- Android5.1--APK包的安装、卸载和优化(PackageManagerService)(三)
- MFC 遮罩(透明)
- java基础知识随笔--数组对象
- javascript流程控制
- JNI技术实现(HelloWord)
- Java包导入eclipse注释乱码
- NYOJ 893 十字架
- 黑马程序员--Foundation框架基础
- 天猫11.11:多终端下的一致性体验
- 【Dubbo之基本配置和运行(2)】Dubbo zookeeper基本配置和运行
- 关于521的变态问题
- NYOJ 49 开心的小明
- Android的onCreateOptionsMenu()创建菜单Menu详解
- 轮盘赌算法-Roulette
- leetCode 4. Median of Two Sorted Arrays 解题思路和方法
- JS代码验证用户身份证
- 我对 rest 以及 restful 的一些粗浅的理解
- 记录下学习的mac 自带apache 使用方法,及xamp的使用
- Xcode 中的小技巧
- Delphi代码创建形式规范 1.0