【问题标题】:go install c shared output pathgo install c 共享输出路径
【发布时间】:2021-04-19 09:36:01
【问题描述】:

我正在尝试在包中安装库。但是我不明白它编译到哪里。

结构是这样的: 包/cmd/库

我可以使用 go install 安装其他可执行目标。我的路径设置正确。但是现在我想构建我的共享库目标并将其部署在某个地方(此部署步骤可以手动完成)。我遇到了两个不同的问题。

问题一,我好像根本无法安装:

go install -buildmode=c-shared bpackage/cmd/library@latest

返回:

go install: no install location for directory /home/tpm/go/pkg/mod/package/cmd/library outside GOPATH
        For more details see: 'go help gopath'

这告诉我它安装在我的 gopath 之外的某个地方,我只是不确定它可能在哪里。

问题 2,使用 -o 标志不适用于 go install,因此我似乎无法更改输出位置以将其放置在 GOPATH 中(我确实尝试将 GOBIN 设置在我的 gopath 中,但是因为其他命令工作正常,我认为这不会导致任何问题)

【问题讨论】:

    标签: go installation shared-libraries shared


    【解决方案1】:

    引用https://github.com/golang/go/issues/24253的伊恩的话

    请注意,使用go install -buildmode=c-shared 没有多大意义。期望人们会使用go build -buildmode=c-shared -o foo.so。使用-buildmode=c-shared的唯一一点是在某处使用共享库,而使用go install而不使用-o会将共享库置于一个相对不可预测的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 2019-02-03
      相关资源
      最近更新 更多