每次尝试编译我的程序(今天早上)升级后从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.com/emicklei/hopwatch.a:
object is [windows amd64 go1.1.1 X:none]
expected [windows amd64 go1.1.2 X:none]
我尝试了go clean -r
,但错误信息仍然存在?
使用的clean
命令是什么?
答案 0 :(得分:4)
实际解决方案:
我转载了这个问题:
go.exe
(我的路径中没有%GOROOT%\bin
)GOROOT
指向前面的1.1.1安装文件夹(我保持1.1.1和1.1.2安装在单独的文件夹中)。如果您坚持使用默认设置(例如:一个 C:\go
安装目录,%GOROOT%\bin
中设置PATH
,则不会看到这个错误。
但如果你确实看到了这个错误:
Go构建系统应该在
$GOPATH/pkg
中找出任何过时的东西,并且(传递上)按需重建它。
原始解决方案:
在“Command go”页面的“删除对象文件”部分中,我错过了go clean -i
选项:
-i
-i
标志导致clean删除相应的已安装存档或二进制文件('install install'将创建什么)。
这些.a
文件(如hopwatch.a)正是安装程序为库生成的(在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
:预览选项)。
在实际删除任何内容之前确定要删除的内容并没有什么坏处。