找不到软件包的数学/位

Pub*_*udu 3 go

执行测试时出现以下错误。这以前工作。不知道该怎么做才能修复此错误。

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)

pet*_*rSO 7

Go 1.9发行说明

新的位操作包

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)