文章目录
使用环境: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文件的步骤


本文是关于Linux系统中使用VIM编辑器、GCC编译器进行程序编译及GDB调试的实践教程。作者通过一系列练习,包括GCC的编译步骤、静态库与动态库的制作与比较、GCC的优化选项以及GDB调试命令的运用,帮助读者掌握这些基础工具的使用。练习涵盖了从基本命令到复杂问题定位的多种场景。
&spm=1001.2101.3001.5002&articleId=129206187&d=1&t=3&u=1e7d8bab08204171a8d330ac0cc0e5d2)
8904

被折叠的 条评论
为什么被折叠?



