比较正常编译出来的go步伐的设置 go env 发现不同的只有CGO_ENABLED=0 CGO_ENABLED=1 两个参数区别,这里博主去检察了一下这个情况变量的用处。
CGO_ENABLED=0 是一个情况变量,用于控制 Go 语言步伐是否使用 CGO(C 与 Go 之间的接口)。当 CGO_ENABLED 设置为 0 时,Go 步伐将不会实验链接任何 C 代码或库。这通常用于确保 Go 步伐可以在没有 C 编译器的情况中编译和运行,比方在纯 Go 容器中。
末了使用CGO_ENABLED=0 go build重新编译即可。如下图所示即为不依赖于库的可实行文件。
下面进入正题:ldd命令
ldd命令是Linux系统中的一个工具,用于打印出一个可实行文件所依赖的共享库文件(动态链接库)。
在Linux操作系统中,步伐运行时往往依赖于多个动态链接库(Dynamic Link Libraries,简称DLLs或.so文件)。这些库文件提供了步伐运行所需的函数和数据结构。为了相识一个步伐依赖哪些库文件以及库的版本,通常可以使用ldd命令来实现这一目的[2]。它不仅能够列出步伐运行时需要加载的共享库文件及其路径,还能帮助调试步伐、办理运行时错误以及优化系统情况[3]。
起首,ldd命令的根本语法如下: