操作系统之:编译器、gdb、make/makefile、git 看完你就全会啦!

一、编译器:gcc-àc语言

一、编译器:g++===>c语言

                      g++====>c++

编译一个程序所需要的经历的四个过程

1、预处理

1.1 宏替换 1.2 头文集展开 1.3去注释 1.4条件编译:gcc / g++ -E[file] -o[file].i

2、编译

语法语义的检测

gcc -S[file] -o[file].s 将源代码转化为汇编代码

3、汇编

将汇编代码转化为机器(二进制)代码

gcc -c [file] -o [file].o       注意此时c是小写

4、链接 gcc [file].c -o [file]

用目标文件+库文件  生成可执行程序

静态链接:gcc/g++命令行中增加一个参数 -static

 

动态链接:默认就是动态链接的

 

区别:

静态链接编译出来的文件大于动态链接生成的文件

可通过file [文件名]查看

也可以通过ldd [文件]可以查看一个文件所依赖的库文件 如果后缀为.so 则为动态库

 

二、gdb

1debug & release ==> -g 命令行选项

2、调试的范式:gbd binfile

3、调试的选项:

        l(list):查看文件内容

r(run):让程序运行起来

b [行号]:打断点

i(info) b(breakpoints):查看所有断点信息

⑤num:断点序号 Type:类型 keep保持 Enb(y:断点生效,n断点失效)

disable [序列号]使断点失效 enable[序列号]:使断点生效

n(next):逐过程执行win(F10,不进入程序内部)

 s(step):逐语句调试win(F11,进入程序内部)

 p [变量名称]:打印变量的值,print

 bt ;查看调用函数栈帧  

 where作用和bt一样

   f PID 查看当前函数调用的栈帧

coredump文件:内核转储文件,保存的是进程在崩溃的一瞬间内存的映像。

make & makefile

1、make & makefile的解释

1.1make是解释器 解释makefile文件,makefile是书写编译规则的文件

1.2make是解释makefile文件,可以自动化构建项目,自动化生成可执行程序

 

2、makefile文件书写的规则

2.1目标对象 & 依赖对象 & 编译命令

2.2make的解释makefile文件的规则

    • make会在当前目录下找makefile或者Makefile的文件
    • 永远只为生成第一个目标对象而服务
    • 若目标对象相对于依赖对象而言,较新,则不生成
    • make 在生成第一个目标对象的时候,如果依赖对象也需要后续生成,则先生成依赖对象之后,使用依赖对象生成目标对象 

2.3伪目标 

           .PHONY:目标对象

             目标对象:

                                  执行命令

3makefile文件: 内置变量 & 自定义变量

批量注释ctrl +v 选中注释的行(用j/k选中)按下I(shift+i)-à插入注释符  ---》esc

批量取消:ctrl +v 选中注释的行,或者列(用j/k/l/h选中) -àx

 

makefile内置对象/自定义对象

$^:代表所有依赖对象

$@:代表目标对象

 

四、git

        下载远端到仓库:git clone

        提交本地仓库:git add:标记文件,让git进行管理

                                       git commit:提交到本地仓库

        提交到远端仓库:git push origin master

        从远端仓库更新到本地仓库:

                                          git pull

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I am Supreme

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值