Compilation 如何在1.1.2中编译go程序,并在1.1.1中编译依赖项?
每次我尝试在(今天早上)从1.1.1升级到1.1.2(在Windows 7 64位上)后编译程序时,都会收到如下错误消息:Compilation 如何在1.1.2中编译go程序,并在1.1.1中编译依赖项?,compilation,go,upgrade,Compilation,Go,Upgrade,每次我尝试在(今天早上)从1.1.1升级到1.1.2(在Windows 7 64位上)后编译程序时,都会收到如下错误消息: C:\Users\VonC\prog\go\src\github.com\spf13\hugo>go build -o hugo.exe main.go # github.com/spf13/hugo/hugolib hugolib\page.go:23: import C:\Users\VonC\prog\go\pkg\windows_amd64/github.co
C:\Users\VonC\prog\go\src\github.com\spf13\hugo>go build -o hugo.exe main.go
# github.com/spf13/hugo/hugolib
hugolib\page.go:23: import C:\Users\VonC\prog\go\pkg\windows_amd64/github.com/emicklei/hopwatch.a:
object is [windows amd64 go1.1.1 X:none]
expected [windows amd64 go1.1.2 X:none]
我尝试了一个清除-r
,但错误消息仍然存在
正确的clean
命令是什么?实际解决方案:
我转载了这个问题:
- 直接调用1.1.2
(我的路径中没有go.exe
)%GOROOT%\bin
- 使用
指向以前的1.1.1安装文件夹(我将go 1.1.1和1.1.2安装在单独的文件夹中)GOROOT
C:\go
安装目录,以及%GOROOT%\bin
路径中的),您将不会看到此错误
但如果您确实看到此错误:
- 确保
%GOROOT%
与您正在调用的go.exe
一致
安装-a
,如下所述。下面提到的清理是不必要的。
作为:
Go build系统应该能够在$GOPATH/pkg
中找出任何过时的东西,并根据需要(过渡地)重建它
原始解决方案:
在“”页面的“删除对象文件”部分,我错过了清除-I
选项:
-i
-i
标志会导致clean删除相应的已安装存档文件或二进制文件(“go install”将创建的内容)
而那些.a
文件(如hopwatch.a)正是go install为库(在Windows中)生成的
因此,确保重新生成所有内容的完整清除命令是:
cd C:\Users\VonC\prog\go\src\github.com\spf13\hugo
go clean -r -i
go install -a
这将重建并安装所有内容,包括所有依赖的软件包
-a
实际上是一个构建选项,它强制重新构建已经是最新的包
像往常一样,go clean-r-n
会显示要清理的内容(-n
:预览选项)。
确定哪些内容将被删除并没有什么坏处。。。在实际删除任何内容之前。我很惊讶,因为Go build系统应该在$GOPATH/pkg中找出任何过时的内容,然后(过渡地)按需重建。@jnml我同意。它忽略了依赖项,但可能是因为我最初没有使用go build-a
?@jml得到了它。我发现我的go设置不一致,触发了该错误消息。我在下面编辑了我的答案。