• 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) : 查看当前栈帧局部变量的值

  • 相关阅读:
    java学习第211天,第四部分学习第11天,Linux学习第11天,p121-127(0913)-3h
    一、Java语言简介
    SpringCloud Bus消息总线
    Dubbo使用invoke指令来调用dubbo接口
    luckysheet的一点使用心得
    阶段性工作总结
    【场景】大数据场景题 - Hash
    字节码打桩插入代码块|IOC框架之对象注入~研究
    Android自动化测试,5个必备的测试框架
    Cesium从零开始开发
  • 原文地址:https://blog.csdn.net/asibble/article/details/126149142