【问题标题】:How can a Go program consume a static library (.a file) of other Go code?Go 程序如何使用其他 Go 代码的静态库(.a 文件)?
【发布时间】:2021-02-07 23:35:24
【问题描述】:

我正在从 C 世界进入 Go 世界。 C 程序经常使用静态库中的定义(函数等),在 Linux 中这些定义通常具有 .a 后缀。

使用 Go,我可以轻松地将 .go 文件构建到这样的库中:

go build -buildmode=archive -o <name>.a

但是一旦构建完成,我如何指导其他 Go 程序使用这个库中的内容?

【问题讨论】:

  • 你没有。手动存档并没有真正的用处。
  • 为什么要在 Go 中使用它?仅仅因为它在 C 中很常见并不意味着它在 Go 中也很合理。

标签: go static-libraries


【解决方案1】:

如果你真的想要它,你可以下载 .a 文件,例如库 foo/bar 并将其放置到 $GOROOT/pkg/$GOOS_$GOARCH/foo/,尽管你的 go 路径中仍然必须有 lib 的源代码,问题是有这没有任何意义,因为 go 编译得足够快。您最多可以保存几秒钟,甚至不保存,因为下载文件可能需要更多时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2016-04-22
    相关资源
    最近更新 更多