这个是一个普遍的问题,原因是有时候生产环境中,没有安装gdb所依赖的库软件,导致gdb的安装受阻。这个时候如果想安装依赖的库,有时候,这个库还要以来其他未安装的软件,所以比较麻烦。
之前研究过gdb的最小依赖编译;去除不必要的依赖库,总结在:
https://mzhan017.blog.csdn.net/article/details/111577981
而且还将实际的binary文件,放到了下面这个链接。是基于RHEL8做的编译。
https://download.csdn.net/download/qq_36428903/85052587
最近有朋友问,怎么将所依赖库的.a文件打包到一个文件,然后做变的时候直接依赖这个文件做编译。其实思路是一样的。理论上是可行的。
这里的第一步就是怎么将依赖库的.a文件都找出来,或者是自己将所有的依赖开源软件都编译出来。这一步还是比较费劲的。因为依赖的东西太多。
第二步没有必要将所有的.a文件打包到一个文件,只要确保编译/链接的时候能找到相关的文件就可以。
第三步,要修改gdb的编译脚本,确保是static编译,确保链接的时候能找到想要的.a文件。
最后一步,就是对上面整个过程的一个实践。这一步应该是可以学到东西的最重要的一步。当然也是最难的一步!