我已经将版本从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:exactstack]预期[darwin amd64 go1.4.1(appengine-1.9.18)X:exactstack]
我知道现有版本的文件构建存在问题并尝试使用新版本运行,我可以知道如何解决此问题吗?
谢谢!
答案 0 :(得分:3)
最新的版本是1.4.2,但AppEngine Go SDK使用捆绑的Go运行版版本1.4.1!
这意味着您无法使用“外部”1.4.2 Go库来编译源代码。如果您在Go中为AppEngine开发应用程序,则不能(不应该)使用任何Go库,除了Go AppEngine SDK中捆绑的那个!
事实上,你没有必要。 SDK包含goapp
命令,类似于go
工具,您可以使用该命令在本地运行和测试应用程序,并将其部署到生产环境中。要在本地运行/测试您的应用程序,请使用goapp serve
命令将其部署到生产环境,使用goapp depploy
命令。
所以你应该做的是删除使用Go 1.4.2编译的所有包对象,并仅使用goapp
(SDK的一部分)命令来运行/测试/部署你的应用程序。
请注意,您甚至不必安装任何包对象,因为goapp deploy
命令以源形式上传您的应用程序,并且它会在appengine服务器上编译为可执行本机二进制文件。