我是个新手。我试图在MacOS BigSur上安装gomobile以进行评估,但无法通过init步骤。
运行go version返回go version go1.17.6 darwin/amd64
在方向之后,gomobile安装似乎正常工作(在向PATH中显式添加gomobile之后),但是运行init或version失败。
gomobile: go install golang.org/x/mobile/cmd/gobind failed: exit status 1
go install: version is required when current directory is not in a module
Try 'go install golang.org/x/mobile/cmd/gobind@latest' to install the latest versiongomobile version unknown: cannot test gomobile binary: exit status 1, no required module provides package golang.org/x/mobile/cmd/gomobile: go.mod file not found in current directory or any parent directory; see 'go help modules'我猜想这与环境变量有关,但任何建议和/或帮助都将不胜感激。
发布于 2022-01-12 15:40:12
我最终成功地建立了gomobile,但是这个过程是痛苦的,官方的“实验性”文档不完整,一点帮助都没有。下面是在MacOS (BigSur)上对我起作用的步骤:
按照从网站安装的步骤执行
安装通用汽车
go install golang.org/x/mobile/cmd/gomobile@latest安装Xcode命令行工具。如果已安装但未找到,则可能需要运行以下命令:
xcode-select -r安装Android。这可以通过Android的工具->SDK管理器来完成。需要确保已安装的版本得到gomobile的支持,因为gomobile不支持NDK的最新版本。
更新shell以包括以下导出:
export PATH=$PATH:/Users/mikem/go/bin
export ANDROID_HOME=/Users/mikem/Library/Android/sdk
export ANDROID_NDK_HOME=/Users/mikem/Library/Android/sdk/ndk/23.1.7779620创建一个工作目录
mkdir myworkdir创建模块目录
mkdir mymodule
cd mymodule在该模块目录中创建一个.go文件,并为其提供一些内容。请注意,包名应该与模块名不同,否则绑定可能会抱怨找不到任何东西
package mymodulelib
import "fmt"
func SayHello() {
fmt.Println("Hello from mymodule")
}从工作目录中初始化模块。
go mod init mymoduleInstall它会抱怨您应该使用go install方法而不是go get (不推荐),但是go install不起作用(至少对我来说是这样)。
go get golang.org/x/mobile/cmd/gobind返回模块目录,初始化并生成iOS和android代码。
cd mymodule
gomobile init
gomobile bind -target ios
gomobile bind -target androidhttps://stackoverflow.com/questions/70658553
复制相似问题