为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
料青山看我应如是 2023-02-21 16:40:26
我是戈朗的新手。首先要说的是,我 可以使用标准 Go构建 kubo(go-ipfs) ,但在 Goland 中不行。使用标准的 Go.exe 构建,我需要 cd 到包含模块和主要功能的文件夹main,然后才运行:go install在 Golnad 中重现的步骤:安装Goland 2022.2.3新建项目 -> 来自 SCV Git:https://github.com/ipfs/kubo在 C:\Users\Med\GolandProjects\ 中使用建议的 Goland 路径来存储 kubo 项目在设置的 GOROOT 字段中,我指定了我的 Go 安装位置。在我按下的上下文菜单中选择项目 (kubo) Run- 它要求配置。在我按项目运行后,它会创建配置:然后显示以下错误消息:运行“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 \goset GOPRIVATE=set GOPROXY=https://proxy.golang.org,直接set GOROOT=D:\programs\Goset GOSUMDB=sum.golang.orgset 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
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

我不明白它为什么起作用但它起作用了: 我在右侧窗格的项目树中选择了 kubo/cmd/ipfs 项目,然后从上下文菜单中按下运行。Goland 构建了(我认为)主程序包,创建了正确大小 (60Mb) 的可执行文件,并像守护进程一样提供服务:我可以通过 WebUI 进行连接,并且能够观察我之前上传的文件。但这不是守护进程——在调试过程中,我看到它不认为启动是守护进程,退出是批处理。这是自动创建的配置:

//img1.sycdn.imooc.com//63f483af00018de716720929.jpg

编译器的输出:


GOROOT=C:\Users\Med\Go\go1.19.1 #gosetup

GOPATH=C:\Users\Med\Go #gosetup

C:\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 示例给出解释。


查看完整回答
反对 回复 2023-02-21
  • 1 回答
  • 0 关注
  • 504 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信