首页 > 解决方案 > /usr/lib/golang/src 和 /usr/lib/golang/pkg 是什么关系

问题描述

如果我为 Go 安装发行版包,我/usr/lib/golang/pkg会在/usr/lib/golang/src. 这两组有什么关系?

pkg从源代码生成的编译库src吗?

假设一个使用标准包的 Go 程序,运行 Go 程序是否需要fmt编译的库?pkg是否需要编译 Go 程序?src编译 Go 程序需要源代码吗?

标签: go

解决方案


源代码

此目录包含组织为包的源文件。

该目录包含从 src 目录 Go 源代码包编译的 Go 包对象。如果一个包不包含带有main包声明的文件,那么 Go 在目录中创建一个包存档 (.a) 文件pkg。包对象在链接时用于在 bin 目录中创建完整的 Go 可执行二进制文件。

因此,一旦我们编译了一个包,我们就可以将该对象链接到许多可执行文件中。就像, fmt是编译好的库pkg,所以不需要再次编译。我们可以链接该对象以运行所有 Go 程序。


推荐阅读