如何在 JetBrains Goland 中构建 IPFS (kubo)?

我是戈朗的新手。首先要说的是,我 可以使用标准 Go构建 kubo(go-ipfs) ,但在 Goland 中不行。使用标准的 Go.exe 构建,我需要 cd 到包含模块和主要功能的文件夹main,然后才运行:go install

在 Golnad 中重现的步骤:

  1. 安装Goland 2022.2.3

  2. 新建项目 -> 来自 SCV Git:https://github.com/ipfs/kubo

  3. 在 C:\Users\Med\GolandProjects\ 中使用建议的 Goland 路径来存储 kubo 项目

  4. 在设置的 GOROOT 字段中,我指定了我的 Go 安装位置。

  5. 在我按下的上下文菜单中选择项目 (kubo) Run- 它要求配置。

  6. 在我按项目运行后,它会创建配置:


http://img1.mukewang.com/63f483950001b08310330698.jpg

然后显示以下错误消息:

运行“go build github.com/ipfs/kubo”时出错:无法运行程序“C:\Users\Med\AppData\Local\Temp\GoLand___go_build_github_com_ipfs_kubo.exe”(在目录“C:\Users\Med\Go\kubo”中): CreateProcess error=216, 此版本的 %1 与您运行的 Windows 版本不兼容。检查您计算机的系统信息,然后联系软件发行商

在 Web 中搜索说错误 216 表示 操作系统 ARCH 不匹配

它会创建 Windows 10 无法运行的小 exe 文件。

我可以使用 kubo 构建和运行一些小型测试程序 - 但不是整个项目。

转到应用程序:C:\Users\Med\AppData\Local\Temp\GoLand>转到大约

设置 GO111MODULE=
设置 GOARCH=amd64
设置 GOBIN=
设置 GOCACHE=C:\Users\Med\AppData\Local\go-build
设置 GOENV=C:\Users\Med\AppData\Roaming\go\env
设置 GOEXE=.exe
设置GOEXPERIMENT=
设置 GOFLAGS=
设置 GOHOSTARCH=amd64
设置 GOHOSTOS=windows
设置 GOINSECURE=
设置 GOMODCACHE=C:\Users\Med\go\pkg\mod
设置 GONOPROXY=
设置 GONOSUMDB=
设置 GOOS=windows
设置 GOPATH=C:\Users\Med \go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,直接
set GOROOT=D:\programs\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\programs\Go\pkg \tool\windows_amd64
设置 GOVCS=
设置 GOVERSION=go1.19.1
设置 GCCGO=gccgo
设置 GOAMD64=v1
设置 AR=ar
设置 CC=gcc
设置 CXX=g++
设置 CGO_ENABLED=1
设置 GOMOD=NUL
设置 GOWORK=
设置 CGO_CFLAGS=-g -O2
设置 CGO_CPPFLAGS=
设置 CGO_CXXFLAGS= -g -O2
设置 CGO_FFLAGS=-g -O2
设置 CGO_LDFLAGS=-g -O2
设置 PKG_CONFIG=pkg-config
设置 GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -fdebug- prefix-map=C:\Users\Med\AppData\Local\Temp\go-build1544731977=/tmp/go-build -gno-record-gcc-switches


料青山看我应如是
浏览 528回答 1
1回答

大话西游666

我不明白它为什么起作用但它起作用了: 我在右侧窗格的项目树中选择了 kubo/cmd/ipfs 项目,然后从上下文菜单中按下运行。Goland 构建了(我认为)主程序包,创建了正确大小 (60Mb) 的可执行文件,并像守护进程一样提供服务:我可以通过 WebUI 进行连接,并且能够观察我之前上传的文件。但这不是守护进程——在调试过程中,我看到它不认为启动是守护进程,退出是批处理。这是自动创建的配置:编译器的输出:GOROOT=C:\Users\Med\Go\go1.19.1 #gosetupGOPATH=C:\Users\Med\Go #gosetupC:\Users\Med\Go\go1.19.1\bin\go.exe build -o C:\Users\Med\AppData\Local\Temp\GoLand\___1go_build_github_com_ipfs_kubo_cmd_ipfs.exe -gcflags "all=-N -l" github.com/ipfs/kubo/cmd/ipfs #gosetup但我仍然有兴趣了解 Go/Goland 构建的原理,我鼓励其他人根据这个 kubo 示例给出解释。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go