Linux 练习二 (VIM编辑器 + GCC编译器 + GDB调试)


使用环境:Ubuntu18.04
使用工具:VMWare workstations ,xshell

  作者在学习Linux的过程中对常用的命令进行记录,通过思维导图的方式梳理知识点,并且通过xshell连接vmware中ubuntu虚拟机进行操作,并将练习的截图注解,每句话对应相应的命令,读者可以无障碍跟练。第二次练习的重点在于vim编辑器、GCC编译和GDB调试的使用。
  需要提前安装VIM、GCC。

VIM命令思维导图

  由于VIM命令的练习不容易截图,所以请读者自行练习VIM命令。
请添加图片描述

GCC编译器

请添加图片描述

1、GCC编译文件练习

编写一个c程序,使用GCC命令依次进行预编译,编译,汇编,链接,得到.i文件,.s文件,.o文件,和可执行文件
请添加图片描述

2、静态库动态库制作练习

在这里插入图片描述

  编写一个做两个数减法功能的函数sub,返回值为输入的两个数的差,然后将其编译为动态库,静态库,并使用静态库和动态库,编写usefunc.c,调用通过库调用函数,得到可执行的二进制。

将此函数编译成动态库

请添加图片描述

将此函数编译成静态库

请添加图片描述

静态库和动态库的比较

1、动态库只在执行时才被链接使用,不是直接编译为可执行文件,并且一个动态库可以被多个程序使用,故可称为共享库。
2、静态库将会整合到程序中,在程序执行时不用加载静态库,所以调用静态库的速度相较于动态库会快一些。
3、因此,静态库会使你的程序臃肿并且难以升级,但比较容易部署。而动态库会使你的程序轻便易于升级但难以部署

GCC优化选项 -On

  比如-O1主要进行线程跳转和延迟退栈两种优化,-O2和-O3各有其不同的优化。虽然优化可以加速代码运行速度,但是将给调试带来很大的挑战。因为代码优化后,原先在源程序中声明的变量可能不再使用,控制流也可能突然跳转到意外的地方,所有这些对调试来讲都是不好的。所以在调试的时候最好不要使用优化选项,只有在最终发布的时候才考虑将其进行优化。

GDB调试命令练习

练习一:编写一个程序,通过gdb调试,使用到gdb的b,n,s,info,backtrace,p等命令。

请添加图片描述
  这上述命令要熟练使用,大多都是英文单词首字母比较好记。再补充一些其他的命令。

在这里插入图片描述
请添加图片描述

练习二:练习gdb的x,bt等命令,练习定位段错误,调试core文件的步骤

在这里插入图片描述
请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值