是否有一种使用gccgo构建超级账本结构的方法?我想这样做是为了使用gcc的-finstrument-functions选项来跟踪函数调用。但是我遇到了两个问题。我的步骤如下。
make -n发布
echo“构建发行版/ linux-amd64 / bin / configtxgen linux-amd64“
mkdir -p版本/ linux-amd64 / bin CGO_CFLAGS =“”
GOOS = linux GOARCH = amd64 go build -o /home/yiifburj/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags“ nopkcs11” -ldflags“ -X github.com/hyperledger/fabric/common/tools/configtxgen/metadata.Version=1.1.0” github.com/hyperledger/fabric/common/tools/configtxgen
CGO_CFLAGS =“” GOOS = linux GOARCH = amd64 go build -compiler gccgo -o /home/yiifburj/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags“ nopkcs11” -gccgoflags“ -X github.com/hyperledger/fabric/common/tools/configtxgen/metadata.Version=1.1.0” github.com/hyperledger/fabric/common/tools/configtxgen
#github.com / hyperledger / fabric / bccsp / factory
bccsp / factory / pluginfactory.go:12:8:错误:导入文件“ plugin”不是 找到
“插件”bccsp / factory / pluginfactory.go:56:15:错误:对未定义名称的引用
“插件”插件,错误:= plugin.Open(config.PluginOpts.Library)
首先,如上所述,当go build调用gccgo时找不到“插件”。 另一个是使用gccgo时如何传递ldflags -X?看来-X是仅在gc工具中无效而不是gccgo的参数。
有人可以帮助我吗?谢谢。
答案 0 :(得分:0)
您需要使用正确版本的GCC,以获得对各种Fabric版本支持的Go版本的支持。
gccgo不支持Go 1.9(GCC 7支持Go 1.8)。 GCC 8增加了对Go 1.10的支持。
因此,您应该使用Fabric v1.2和GCC 8。