构建约束排除所有 Go 文件

jer*_*rry 12 go

导入“golang.org/x/net/route”时

它告诉“构建约束排除 go/src/golang.org/x/net/routego 中的所有 Go 文件”

我在 Windows/Linux 上使用 VSCode 编辑器

我在网上搜索并没有看到类似问题的解决方案

package main

import (
    "golang.org/x/net/route"
)

{
    rib, _ := route.FetchRIB(0, route.RIBTypeRoute, 0)
    messages, err := route.ParseRIB(route.RIBTypeRoute, rib)
}
Run Code Online (Sandbox Code Playgroud)

And*_*nyp 49

我在Goland中遇到了这个问题(源代码在 WSL2 上,Goland 在 win 上)。

我能够解决它

go clean -modcache
Run Code Online (Sandbox Code Playgroud)

随后的构建使一切再次井然有序。


use*_*706 17

我的问题是import "C"我的代码中有一个误区,并且我正在使用CGO_ENABLED=0. 这个问题很难发现,因为 IntelliJ 将所有导入折叠到一个语句中。

  • 临时启用 cgo:**env CGO_ENABLED=1 go run main** (2认同)

zan*_*ngw 11

我们在下面遇到了同样的错误Goland,可以通过以下方式解决

如果你想GOOS = linux在Mac下设置,只需在文件头添加这一行,// +build linux,amd64,go1.15,!cgo这意味着我们声明该文件适用于具有以下要求的目标系统:Linux,AMD64架构,Go版本1.15,不支持CGO 。


更新日期 08/04/2022

转到 1.17后。go 命令现在可以理解//go:build行并且更喜欢行// +build。新语法使用布尔表达式,就像 Go 一样,并且应该更不容易出错。以下是更多详细信息

// go:build (darwin && cgo) || linux
// +build darwin,cgo linux
Run Code Online (Sandbox Code Playgroud)


RK2*_*K26 4

尝试删除 go/src/golang.org/ 中的文件夹 x