登录
首页 >  Golang >  Go问答

被构建标签禁用的包仍然链接到二进制文件中

来源:stackoverflow

时间:2024-04-10 11:33:42 153浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《被构建标签禁用的包仍然链接到二进制文件中》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我使用构建标签来禁用一项功能,例如:

来源

  • abc_enable.go
// +build abc
package main

import (
  "big-package"
  "bigbig"
)
...
  • abc_disable.go
// +build !abc

// empty

构建cmd

  • 启用:go build --tags abc
  • 禁用:go build

此方法始终有效。

问题

但我发现当 abc 禁用时构建二进制文件大小保持很大。

  • 保留 abc_enable.go、--标签 abc。大小最大11m
  • 保留abc_enable.go,无标签。大小最大11m
  • 手动删除abc_enable.go,大小缩小至5m

是否有任何链接选项或构建选项可以解决此问题?


解决方案


Build constraints

为了区分构建约束和包文档,一系列 构建约束必须后跟一个空行。

这意味着原始代码片段中的 // +build abc 被视为构建约束。要解决此问题,您必须在包子句上方添加一个空行。

// +build abc

package main

import (
  "big-package"
  "bigbig"
)
...

本篇关于《被构建标签禁用的包仍然链接到二进制文件中》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>