当GOARCH设置为arm64 (或省略)时,我的应用程序编译得很好。然而,当我试图编译一个amd64二进制文件(GOOS=darwin GOARCH=amd64 go build)时,我会得到以下错误:
package [mainPackage]
imports [internalPackageThatUsesC]: build constraints exclude all Go files in [pathToInternalPackageThatUsesC]
[internalPackageThatUsesC]由3个文件组成--一个带有实现的目标C文件、一个用于它的头文
我正在为多个体系结构(amd64和arm64 -都在Linux上)构建一个Docker映像。我使用的是多级构建--这意味着使用Go -高寒映像作为构建器(将Go源代码编译成可执行文件),然后将可执行文件复制到较小的次要映像中。
最初,我将编译后的程序复制到一个阿尔卑斯映像中,但我决定切换到一个scratch映像(因为安全方面的好处)--这涉及更改构建命令,以便静态地链接生成的可执行文件。我的Dockerfile现在是:
FROM golang:1.16 AS builder
WORKDIR /go/src/
RUN go get -d -v ./...
COPY . .
RUN env ${o
我在围棋方面没有太多经验,但我的任务是执行一个围棋项目:) 因此,我需要构建go项目,然后执行它 下面是我构建go项目时的错误。似乎缺少一些依赖项(包和io/fs) transform/transform.go:13:2: package embed is not in GOROOT (/usr/local/Cellar/go/1.15.8/libexec/src/embed)
pkg/util/fs.go:4:2: package io/fs is not in GOROOT (/usr/local/Cellar/go/1.15.8/libexec/src/io/fs) 我的go环境 GO
我使用这个命令从GitHub下载了一个包;但是输出结果让我很惊讶,我想安装这个包在GOPATH或GOROOT下找不到它!
$ go get github.com/golang/dep/cmd/dep
package github.com/golang/dep/cmd/dep: cannot find package "github.com/golang/dep/cmd/dep" in any of:
/usr/local/Cellar/go/1.13/libexec/src/github.com/golang/dep/cmd/dep (from $GOROOT)
go version go1.12.9 darwin/amd64
在我安装了golang.org/x/tour包之后,我运行了命令tour,得到一个错误:
Couldn't find tour files: could not find go-tour content; check $GOROOT and $GOPATH
下面是go env的输出
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/elk/Library/Caches/go-build"
GOEXE=""
GOFLAGS=
我相对来说是个新手,而且我在go构建系统上遇到了一些麻烦。
GO环境:
(base) ngadre-mbp:github.com ngadre$ go version
go version go1.14.5 darwin/amd64
(base) ngadre-mbp:github.com ngadre$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/ngadre/Library/Caches/go-build"
GOENV="/Users/n
我需要在macos上的vscode中调试一个golang应用程序,但没有成功。get错误为:
API server listening at: 127.0.0.1:49512
could not launch process: not an executable file
Process exiting with code: 1
这是我的GO ENV
go version go1.16.6 darwin/amd64
Delve Debugger
Version: 1.7.0
Build: $Id: e353a65161e6ed74952b96bbb62ebfc56090832b $
GO1
汇总:当我尝试交叉编译文件链中某个地方包含C文件的.go源文件时,针对的是来自Mac主机的AMD64,我得到:
/usr/local/go/src/runtime/cgo/gcc_windows_amd64.c:8:10: fatal error: 'windows.h' file not found
纯Go代码似乎没有错误地交叉编译;当涉及C文件时,是否有一种方法可以为交叉编译获得适当的头文件?
More details:我在Mac上安装了LiteIDE,用于处理一些.go项目,而LiteIDE使将其他平台作为构建目标相对简单。我在一个很小的测试项目上测试了它,完全是Go,它
当我尝试运行go install时,我得到以下内容:
go install golang-book/chapter11/math: mkdir /Users/Swanros/Go/pkg/darwin_amd64: permission denied
然后我尝试sudo go install并得到以下内容:
go install: no install location for directory /Users/Swanros/Go/src/golang-book/chapter11/math outside GOPATH
这是我的go env
GOARCH="amd64"
G
我正在构建一个针对瓦斯的围棋模块,我需要测试。
电流配置
travis.yml配置:
language: go
go:
- 1.11.x
before_install:
- curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
- dep ensure
和下面的makefile
all: deps test
deps:
GOOS=js GOARCH=wasm go get ./...
test:
GOOS=js GOARCH=wasm go test ./...
test
所以我有下面的代码
package main
import (
"github.com/gorilla/mux"
)
func main() {
router := mux.NewRouter()
}
当我运行时,它会给出以下错误binapi.go:4:2: no required module provides package github.com/gorilla/mux; to add it: go get github.com/gorilla/mux,如何修复此错误?我已经以各种可能的方式运行go get github.com/gorilla/mux命令,
我在我的mac上安装了go
go version
输出:
go version go1.8.1 darwin/amd64
和
go env
输出:
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/MYUSERNAME/go/"
GORACE=""
GOROOT="/usr/local/go"
GOTOOL
main.go如下:
package main
func main() {
println("hello world")
}
Makefile如下:
flags=-X main.version=1.5.0
build:
go build -ldflags "$(flags)" -o main main.go
然后运行make,得到主文件。
在运行./main -v之后,我得到了:
hello world
为什么它不显示1.5.0
go版本是go version go1.18 darwin/arm64,当我运行go version -m mai
使用MacBook Pro,Big操作系统,我遵循了超级分类系统结构,我安装了所有所需的文件和工具。但是,当我到达最后一步时,代码会生成一个goimport错误,无法修复。错误如下:
johnny@JohnnyMBP fabric % make basic-checks integration-test-prereqs
All files are excluded from having license headers
Building github.com/client9/misspell/cmd/misspell -> misspell
Checking changed go fil