Appengine Go devserver构建问题

huangapple go评论85阅读模式
英文:

Appengine Go devserver build issue

问题

我已将Go版本从1.4.1更新到1.4.2,并且现在正在使用最新的Go SDK 1.9.18。当我尝试运行现有项目时,出现以下错误:

google_appengine/goroot/pkg/darwin_amd64/appengine.a: object is [darwin amd64 go1.4.2 X:precisestack] expected [darwin amd64 go1.4.1 (appengine-1.9.18) X:precisestack]

我知道这是一个使用旧版本构建的文件尝试在新版本上运行的问题,请问我该如何解决这个问题?

谢谢!

英文:

i have updated the go version from 1.4.1 to 1.4.2, and also now using appengine latest go sdk 1.9.18, when i try to run the existing project i get the following error ,

google_appengine/goroot/pkg/darwin_amd64/appengine.a: object is [darwin amd64 go1.4.2 X:precisestack] expected [darwin amd64 go1.4.1 (appengine-1.9.18) X:precisestack]

i know its an problem with file build with existing version and trying to run with new version, may i know how can i fix this issue ?

Thanks!

答案1

得分: 3

最新的Go版本是1.4.2,但AppEngine Go SDK使用的是捆绑的Go运行时版本1.4.1!

这意味着你不能使用一个“外部”的1.4.2 Go库来编译你的源代码。如果你在Go中开发一个AppEngine应用程序,除了Go AppEngine SDK中捆绑的库之外,你甚至不能使用任何Go库!

实际上,你也不需要这样做。SDK包含一个类似于go工具的goapp命令,你可以使用它在本地运行和测试你的应用程序,并将其部署到生产环境。要在本地运行/测试你的应用程序,请使用goapp serve命令;要将其部署到生产环境,请使用goapp deploy命令。

因此,你应该删除使用Go 1.4.2编译的任何包对象,只使用goapp(SDK的一部分)命令来运行/测试/部署你的应用程序。

请注意,你甚至不需要安装任何包对象,因为goapp deploy命令会将你的应用以_source_形式上传,并在appengine服务器上将其编译为可执行的本机二进制文件。

英文:

The latest go version is 1.4.2, but the AppEngine Go SDK uses a bundled Go runtime with version 1.4.1!

That means you can't use an "external" 1.4.2 Go library to compile your sources. If you develop an app for AppEngine in Go, you can't (shouldn't) even use any Go library except the one that is bundled in the Go AppEngine SDK!

And in fact, you don't have to. The SDK contains a goapp command similar to the go tool with which you can run and test your app locally and you can deploy it to production environment. To run/test your app locally, use the goapp serve command, to deploy it to production environment, use the goapp depploy command.

So what you should do is delete any package objects compiled with Go 1.4.2, and use only the goapp (part of the SDK) command to run/test/deploy your application.

Note that you don't even have to install any package objects as the goapp deploy command uploads your app in source form and it is compiled into executable native binary on the appengine servers.

huangapple
  • 本文由 发表于 2015年3月14日 18:22:53
  • 转载请务必保留本文链接:https://go.coder-hub.com/29047816.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定