我执行测试时遇到以下错误。这在以前工作。不确定我需要做些什么来修复此错误。
golang.org/x/crypto/ripemd160/ripemd160block.go:12:2: cannot find package "math/bits" in any of:
/usr/local/Cellar/go@1.8/1.8.7/libexec/src/math/bits (from $GOROOT)
答案 0 :(得分:4)
Go 1.9包含一个新的包,数学/位,优化 用于操作位的实现。在大多数架构上, 编译器还可以识别此包中的函数 并被视为内在因素以获得额外的表现。
您需要使用Go 1.9或更高版本。
我在$HOME
目录中从源代码安装了几个Go版本:~/go1.4
,~/go1.8
,~/go1.9
,~/go1.10
和{{1} (开发)。将~/go
文件夹从go1.9或更高版本复制到go1.8。来自src/math/bits
运行go1.8/src
。
go1.8 install -v math/bits
:
go1.8
输出:
#!/bin/sh
# $HOME/bin/go1.8
export GOARCH=amd64
export GOOS=linux
export GOROOT=$HOME/go1.8
export GOBIN=$GOROOT/bin
exec $GOBIN/go "$@"
例如,
$ cd ~/go1.8/src
$ go1.8 install -v math/bits
math/bits
输出:
package main
import (
"fmt"
"math/bits"
)
func main() {
fmt.Println(bits.UintSize)
}
答案 1 :(得分:0)
您需要为gopath复制软件包“ math / bits”。 一种方法是:
<goprojectpath>/src/math
(cp -r ...)
从<goroot_1.10+>/src/math/bits
复制到<goprojectpath>/src/math
govendor add +external
或将新的golang版本安装到1.10 +。