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

  • 相关阅读:
    Vue生命周期
    脚本生命周期
    音频
    光照系统
    InstantOC(对象渲染---游戏优化)
    kafka单机环境配置以及基本操作
    mysql 锁机制
    java.math.BigDecimal类multiply的使用
    去掉返回的json中特殊字符
    TheadLocal与synchronized
  • 原文地址:https://www.cnblogs.com/kex1n/p/6091488.html
Copyright © 2020-2023  润新知