英文:
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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论