链码实例化错误/ usr / bin / ld:找不到-lxxx

时间:2019-06-21 17:20:21

标签: hyperledger-fabric hyperledger

我的链码具有go依赖关系,需要C库。

我使用了vendor命令来打包依赖关系,并且我的vendor文件夹可以包含所有必需的.so文件。

Chaincode安装正常,没有任何问题。

但是在链码实例化时,我遇到了错误:

Error: could not assemble transaction, err proposal response was not successful, error code 500, msg error starting container: error starting container: Failed to generate platform-specific docker build: Error returned from build: 2 "# github.com/chaincode/awesomeProject/vendor/github.com/wasmerio/go-ext-wasm/wasmer
/usr/bin/ld: cannot find -lwasmer_runtime_c_api
collect2: error: ld returned 1 exit status

这意味着它无法在链码实例化时找到所需的依赖项。

有关如何解决该问题的任何指示?

谢谢

1 个答案:

答案 0 :(得分:1)

如果您使用CLI打包/安装了链代码(peer chaincode install ...),则此操作将无效,因为该命令会滤除除

以外的所有文件扩展名
var includeFileTypes = map[string]bool{
".c":    true,
".h":    true,
".s":    true,
".go":   true,
".yaml": true,
".json": true,

}

如果使用Node.js或Java SDK打包并安装链码,则可能可以使它正常工作。