• gcc/g++使用,自动化工具(企业使用)


    gcc/g++使用

    这个是编译器,进行相关的东西。这个是开源的编译器,进行c与c++进行编译。

    进行的过程:

    1, 预处理

    2,汇编

    3,链接

    预处理

    gcc -E进行预处理重定义一个输出文件里面。

    通过预处理之后的经过

    gcc -E main.c -o main.i 
    
    • 1

    生成相关的.i的文件,变成相关的东西。

    编译(生成汇编)

    gcc -c main.s -o main.o
    
    • 1

    汇编生成main.o文件内容,可以直接预处理语言变成汇编。

    汇编(生成机器可识别代码)

    gcc -c main.c -o main.o
    
    • 1

    直接生成.o文件。

    链接(生成可执行文件或者库文件)

    gcc main.o -o main 
    
    • 1

    生成main文件,变成相应的东西。

    函数库

    在编译链接时,库文件不同处理方法,分别不同的静态库与动态库

    静态库

    静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”

    动态库

    没有将库放在可执行程序之中,运行过程之中进行动态提取库文件。

    节省空间与开销在系统上面,动态库后缀名为“.so”.

    调试器gdb使用

    gdb的使用,基本上使用release模式相关的东西。基本的东西使用方法与调试相同,只是用简单的代码进行调节,不是之前的步骤进行相关的操作。(Xcode也可以进行相关的操作)

    通过gcc反应之后得到了相关的可执行程序,然后

    gdb test //test可执行程序
    
    • 1

    1,b (break)+ 行号:打断点

    2,d(delete) + 断点编号:删除断点

    3,l + 行号:显示代码

    4,s(step):逐语句(进入函数)

    5,n(next):逐过程

    6,display && undisplay:行显示或者取消常显示

    7,until + 行号 :跳转到指定行

    8,r(run):运行程序

    9,c(continue):从一个断点到下一个断点

    10,finish:执行完成一个两数就停下*!

    11, j(jump) + 行号:跳到指定行

    12,k(kill):终止程序运行

    13,i(info) : 查看当前栈帧局部变量的值

  • 相关阅读:
    【硬件相关】RDMA网络类别及基础介绍
    Matlab 2012a 面向对象(1):二维点,地理点和地理线的类设计和实现
    Java程序员学习算法路线规划总结
    基于SSM的班级事务管理系统
    绿色安装MySQL5.7版本----配置my.ini文件注意事项
    电子协会 C语言 1级 32、计算2的幂
    循环队列的实现
    etcd分布式存储
    《Python趣味工具》——ppt的操作(1)
    优盘不认,无法识别的情况下,如何修复问题
  • 原文地址:https://blog.csdn.net/asibble/article/details/126149142