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调试器常用选项的更多相关文章

  1. gdb调试器在windows下的相关内容

    1.gdb调试器在visual studio或dev c++中也有类似的调试图形化可视界面,但是gdb不同的是它是由命令行组成,他的界面对于习惯图形化可视界面的用户来说一时间会不知所措 2.通过gcc ...

  2. 使用GDB调试器(一)

    使用GDB调试器 GDB概要---- GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软 ...

  3. Mac os系统gdb调试器的安装与使用

    Mac os系统gdb调试器的安装与使用 1.简介 Mac os下的Terminal 终端中默认情况下并没有安装gdb调试器,但是可以通过gcc编译器进行代码编译,如果出错了就需要通过gdb调试器进行 ...

  4. linux基础2——gdb调试器

    gdb调试器使用的一般步骤(不断更新完善): 1.编译过程中要用-g参数来添加调试符号——gcc test.c -g: 2.gdb启动可执行文件——gdb a.out: 3.出现gdb符号表示启动成功 ...

  5. Linux C 程序 函数,数组,指针,gdb调试器(SEVEN)

    函数,数组,指针,gdb调试器 1.函数定义 如果明确指定返回类型,默认为int 参数传递:实参对形参的参数传递是单向的,实参只是把自己的值赋给形参.                      形参的 ...

  6. Linux gdb调试器用法全面解析

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序. 让被调试的程序在工程师指定的断 ...

  7. Ubuntu下GDB调试器的使用

    gdb调试器时一款GNU组织开发.发布的UNIX/Linux环境下的程序调试工具,没有图形界面,但功能强大. GDB使用流程: 先编写一个测试文件gdbTest.c 保存后用gcc对文件进行编译,需要 ...

  8. Linux——【转】gcc编译与gdb调试简要步骤

    原文:gcc编译与gdb调试简要步骤 一.Linux程序gcc编译步骤: Gcc编译过程主要的4个阶段: l 预处理阶段,完成宏定义和include文件展开等工作:(.i) l 根据编译参数进行不同程 ...

  9. Linux环境下的GCC编译器与GDB调试工具介绍

    假如现在我们有如下代码需要编译运行和调试.文件名为:test.c #include <stdio.h> int main() { int day, month, year, sum, le ...

随机推荐

  1. js获取随机色

    方法一: var getRandomColor = function(){ return '#' + (function(color){ return (color += '0123456789abc ...

  2. 八大排序算法之四选择排序—堆排序(Heap Sort)

    堆排序是一种树形选择排序,是对直接选择排序的有效改进. 基本思想: 堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足 时称之为堆.由堆的定义可以看出,堆顶元素(即第一个元素) ...

  3. 在ubuntu上搭建turnserver

    这边文章的目的:搭建turnserver,设定开机启动 1.下载turnserver的源码,最新的地址https://code.google.com/p/rfc5766-turn-server/ no ...

  4. Moo University - Financial Aid

    Moo University - Financial Aid Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 6020 Accep ...

  5. TCP数据流稳定性--TCP分片,重组及乱序

    http://www.cnblogs.com/derekchen/archive/2009/07/15/1524415.html 1.IP分片的情况.IP软件包有一个[分片]和[重组]模块,一个IP数 ...

  6. 分享:扩展Visual Studio 的简单方法

    作为 MS 阵营的码农,相信Visual Studio 肯定是大家的主要武器了,但不知道大家有没有扩展Visual Studio 的需求. 最近我需要做一个工具,发现最好是实现在VS里面,于是,Goo ...

  7. Gearman任务分布系统部署windows平台_使用Cygwin

    1.下载Cygwin http://www.cygwin.com/ 然后选择 Install from Internet  -> Direct Connection -> 选择第一个网址就 ...

  8. Android 中 Service AIDL使用

         1.创建两个项目创建两个.aidl文件 2.在传递值的类里面创建Service并且返回接口: 服务返回值onBind public IBinder onBind(Intent intent) ...

  9. 5-JS函数

    函数 定义函数 JS中有3种定义函数的方法: 函数声明 用函数声明定义函数的方式如下: function abs(x) { if (x >= 0) { return x; } else { re ...

  10. TC SRM633

    第三题:n个数字,有m个限制,每个限制给出某两个数字的Gcd或者Lcm为多少.最后问这样的n个数存在否. 思路:我们发现,对于素数p1,p2,n个数中每个数含有多少个p1,p2是没有联系的,因此每个素 ...