我已经将 go 版本从 1.4.1 更新到 1.4.2,现在还使用 appengine 最新的 go sdk 1.9.18,当我尝试运行现有项目时出现以下错误,
google_appengine/goroot/pkg/darwin_amd64/appengine.a:对象是 [darwin amd64 go1.4.2 X:precisestack] 预期 [darwin amd64 go1.4.1 (appengine-1.9.18) X:precisestack]强>
我知道使用现有版本构建文件并尝试使用新版本运行时存在问题,我可以知道如何解决此问题吗?
谢谢!
最佳答案
最新的 Go 版本是 1.4.2,但 AppEngine Go SDK 使用捆绑的 Go 运行时版本 1.4.1!
这意味着您不能使用“外部”1.4.2 Go 库来编译您的源代码。如果您在 Go 中为 AppEngine 开发应用程序,您甚至不能(不应该)使用任何 Go 库,除非捆绑在 Go AppEngine SDK 中!
事实上,您不必这样做。 SDK 包含一个类似于 go
工具的 goapp
命令,您可以使用它在本地运行和测试您的应用程序,并将其部署到生产环境。要在本地运行/测试您的应用,请使用 goapp serve
命令,要将其部署到生产环境,请使用 goapp depploy
命令。
因此,您应该做的是删除使用 Go 1.4.2 编译的任何包对象,并仅使用 goapp
(SDK 的一部分)命令来运行/测试/部署您的应用程序。
请注意,您甚至不必安装任何包对象,因为 goapp deploy
命令会以 source 形式上传您的应用程序,并将其编译成可执行的 native 二进制文件Appengine 服务器。
关于google-app-engine - Appengine Go devserver 构建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047816/