执行测试时出现以下错误。这以前工作。不知道该怎么做才能修复此错误。
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)
Run Code Online (Sandbox Code Playgroud)
Go 1.9包括一个新的软件包,数学/位,具有用于操作位的优化实现。在大多数体系结构上,编译器还会识别此包中的功能,并将其视为内在函数,以提高性能。
您需要Go 1.9或更高版本。
我去了几个版本,从源代码安装在我的$HOME
目录:~/go1.4
,~/go1.8
,~/go1.9
,~/go1.10
,和~/go
(devel的)。将src/math/bits
文件夹从go1.9或更高版本复制到go1.8。从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 "$@"
Run Code Online (Sandbox Code Playgroud)
输出:
$ cd ~/go1.8/src
$ go1.8 install -v math/bits
math/bits
Run Code Online (Sandbox Code Playgroud)
例如,
package main
import (
"fmt"
"math/bits"
)
func main() {
fmt.Println(bits.UintSize)
}
Run Code Online (Sandbox Code Playgroud)
输出:
$ go1.8 run bits.go
64
Run Code Online (Sandbox Code Playgroud)