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            //退出调试

最新文章

  1. 【JavaScript】javascript中伪协议(javascript:)使用探讨
  2. GIS管网项目-flex/java
  3. 65279 !!!BOM
  4. webapi 通过dynamic 接收可变参数
  5. HTML <fieldset> 标签
  6. subprocess module
  7. input文本框实现宽度自适应代码实例,input文本框
  8. 网页往数据库里插数据要用utf8,否则就乱码
  9. php bin/console doctrine:migrations:migrate
  10. 十八、oracle 角色
  11. linux vi 报错 E37: No write since last change (add ! to override)
  12. Cassandra Issue with Tombstone
  13. mongodb监控常用方法
  14. Caused by: java.net.SocketException: Software caused connection abort: socket write error
  15. nim调用GetSystemPowerStatus判断笔记本电脑是否接通外接电源
  16. 2017-2018-2 20165312 课下选做 MySort
  17. JavaScript深入
  18. 基于ajax请求异常捕获
  19. JavaEE笔记(八)
  20. Java--不可覆盖的方法

热门文章

  1. 不定参数的传递VA_LIST的用法
  2. ACM题目————数独
  3. 20151124001 关闭C#主窗体弹出是否关闭对话框
  4. C#常用日期格式处理转换[C#日期格式转换大全
  5. 对于数据包的截取,使用linux中的netfilter钩子函数
  6. 转载-Python学习笔记之文件读写
  7. torch基本命令
  8. jQueryEasyUI Messager基本使用
  9. Prompt isNaN 数组 function DOM window.open/close/location/history
  10. php获取前一天后一天,php时间函数操作