-1

gccgo を使用してハイパーレジャー ファブリックを構築する方法はありますか? gcc の -finstrument-functions オプションを使用して関数呼び出しをトレースするために、これを実行したいと考えています。しかし、私は2つの問題に遭遇しました。私の手順は次のとおりです。

  1. ビルドコマンドを見つける

make -n リリース

echo "linux-amd64 のリリース/linux-amd64/bin/configtxgen をビルドしています"

mkdir -p release/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

  1. gccgo を使用するようにビルド コマンドを変更します。

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' が見つかりません
"plugin"

bccsp/factory/pluginfactory.go:56:15: エラー: 未定義の名前への参照

「プラグイン」プラグ、エラー:= plugin.Open(config.PluginOpts.Library)

まず、上記のように、go build で gccgo を呼び出したときに「プラグイン」が見つかりませんでした。もう1つは、gccgoを使用するときにldflags -Xを渡す方法ですか? -X は、gccgo ではなく gc ツールでのみ無効なパラメーターのようです。

誰でも私を助けることができますか?ありがとう。

4

1 に答える 1

0

さまざまな Fabric リリースでサポートされている Go のバージョンをサポートするには、正しいバージョンの GCC を使用する必要があります。

  • Fabric 1.1 には Go 1.9.x が必要です
  • Fabric 1.2.x には Go 1.10.x が必要です
  • 今後の Fabric 1.3 には Go 1.10 も必要です

gccgo は Go 1.9 をサポートしていませんでした (GCC 7 は Go 1.8 をサポートしていました)。GCC 8 は Go 1.10 のサポートを追加します。

したがって、Fabric v1.2 と GCC 8 を使用する必要があります。

于 2018-09-03T20:39:09.457 に答える