Makefile 完成所有15个步骤后,使用Fabric 1.0.6运行make命令时出错

Makefile 完成所有15个步骤后,使用Fabric 1.0.6运行make命令时出错,makefile,blockchain,hyperledger-fabric,Makefile,Blockchain,Hyperledger Fabric,我正在使用make命令在自定义路径$HOME//gopath/src/github.com/hyperledger/fabric中安装fabric,但在安装了所有15个步骤后,出现以下错误 Step 15/15 : LABEL org.hyperledger.fabric.version=1.0.2 org.hyperledger.fabric.base.version=0.3.2 ---> Running in ed05a67810db Removing intermedi

我正在使用make命令在自定义路径$HOME//gopath/src/github.com/hyperledger/fabric中安装fabric,但在安装了所有15个步骤后,出现以下错误

Step 15/15 : LABEL org.hyperledger.fabric.version=1.0.2       org.hyperledger.fabric.base.version=0.3.2
 ---> Running in ed05a67810db
Removing intermediate container ed05a67810db
 ---> 99b4b0b28957
Successfully built 99b4b0b28957
Successfully tagged hyperledger/fabric-javaenv:latest
docker tag hyperledger/fabric-javaenv hyperledger/fabric-javaenv:x86_64-1.0.2
build/bin/peer
CGO_CFLAGS=" " GOBIN=/root/gopath/src/github.com/hyperledger/fabric/build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.0.2 -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.3.2 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger" github.com/hyperledger/fabric/peer
go build github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11: invalid flag in #cgo LDFLAGS: -Wl,--no-as-needed
Makefile:227: recipe for target 'build/bin/peer' failed
make: *** [build/bin/peer] Error 1


Docker version 17.12.0-ce, build c97c6d6
docker-compose version 1.18.0, build 8dd22a9
go version go1.9.4 linux/amd64
OS : Ubuntu 16.04
我还设置了以下路径

$ mkdir $HOME/gopath
$ export GOPATH=$HOME/gopath
$ export GOROOT=$HOME/go
$ export PATH=$PATH:$GOROOT/bin

吉拉链接:据我所知,我已经做了

,你不需要自己制作布料。 当你为区块链本身构建链码时,你只需要在gopath中有源代码,因为你的链码将需要它。 此外,如果您使用证书,您可能还需要安装fabric ca以成功构建链代码。 这足以检查您是否正确安装了结构:

cd $GOPATH/src/github.com/hyperledger/fabric
make unit-test
如果行得通,就继续。
一开始我也觉得这很困惑;)

我假设您切换到golang
1.9.4
或更高版本,因此我认为这实际上与此相关,要解决此问题,您需要更新供应商依赖关系:

govendor fetch github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11

接下来继续构建二进制文件并运行测试。

这是go 1.9.4中的一个已知问题:

当围棋人员正在修复它时,您可以在开始制作前手动将旗帜列入白名单:

$ export CGO_LDFLAGS_ALLOW='-Wl,--no-as-needed'
$ make

或者,您也可以降级到1.9.3

我在安装govendor时遇到问题。作为一个快速修复,我已经从1.9.4.Hi降级到1.9。我正在运行sudo go get github.com/kardianos/govendor命令,以便在Ubuntu 16.04 LTS#runtime/usr/lib/go-1.6/src/runtime/proc.go:1257:14:调用方禁止写屏障;允许但我得到的错误正如前面的评论所说。我将解决并尝试1.9.4中的govendo命令。感谢回复。我不确定安装govendor的真正问题是什么,应该是相当简单的过程,也不确定为什么需要root权限?嗨,Christian,我专门安装了make peer for peer nodes和make order for order nodes。我不确定单元测试以及如何处理它。非常感谢您的回复