Golang预编译源码相关内容探讨
Golang预编译源码相关内容探讨 大家好, 我是Go语言的新手,所以这是一个新手问题。 我想弄清楚Go语言源码中是否包含一些预编译的库/二进制文件/其他东西,而这些内容的源代码并未公开(虽然它们可能采用自由许可证,但以“按现状”的方式提供,不附带源码)。 我浏览了Go语言的源码,在testdata文件夹中发现了一些*.a文件(例如libimportsar.a)。
所以问题是:
- libimportsar.a是什么?
- Go语言源码中是否有任何内容是“按现状”提供且不包含源代码的?也许存在一些非开源的插件(可以用来隐藏源代码)?
提前感谢!
这很有趣;看起来它只用在 src/go/internal/gccgoimporter 的测试用例中。我不确定它的源代码是否在某个地方可用;我找不到它,但这并不意味着它不存在!
更多关于Golang预编译源码相关内容探讨的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
感谢您的回答。关于 libimportsar.a 的问题是关于静态库的内容,而不是文件类型(静态库)。
关于第二个问题。您是否知道 Go 语言是否以某种形式使用预编译的内容?这可以是静态/动态库、插件或任何其他形式。
引用 你似乎处于阴谋论模式。
事实是,一些公司的负责人想知道他们是否拥有公司正在使用的工具的全部源代码。这听起来有点偏执,但事实就是如此。
源文件本身可能以某种形式包含一些预编译的数据,例如 libimportsar.a。
由于 Go 对我来说是一门新的编程语言,我不太确定代码复用的实践形式。Go 可能包含其自己的预编译格式,并且仍然可以从源代码构建。为了在不同的操作系统上构建,可以包含针对每个操作系统的内容。这不是一种好的做法,但仍然是可能的。
ulimi1:
我试图查明Go语言源代码中是否包含一些预编译的库/二进制文件/其他内容,而这些内容的源代码并未公开(尽管它们可能采用自由许可证,但以“现状”形式提供,不附带源代码)。 我浏览了Go语言源代码,在testdata文件夹中发现了一些*.a文件(例如libimportsar.a)。
因此,问题如下:
- libimportsar.a是什么?
- Go语言源代码中是否存在以“现状”形式提供、不附带源代码的内容?也许存在一些非开源的插件(可能用于隐藏源代码)?
你似乎陷入了阴谋论模式。
libimportsar.a 是一些测试数据。
go/internal/gccgoimporter: read export data from archives
当与go工具一起使用时,gccgo通常会生成归档文件。 此更改教会了gccgoimporter包如何从归档文件中读取导出数据。
例如,cmd/vet在类型检查包时需要此功能。



