抛出'std :: system_error'

时间:2018-12-03 02:07:10

标签: c++ protocol-buffers grpc protobuf-c

最近我已经开始研究Grpc。 在Grpc C ++编译中,出现以下错误,不确定是什么原因引起的。

我不是C ++背景,任何帮助对我来说都是非常有用的。

[HOSTLD]链接/ home / test / grpc / bins / opt / grpc_ruby_plugin [PROTOC]从src / proto / grpc / channelz / channelz.proto生成protobuf CC文件 [GRPC]从中生成gRPC的protobuf服务CC文件 src / proto / grpc / channelz / channelz.proto

抛出'std :: system_error'实例后调用

terminate终止

what():未知错误-1

-grpc_out:protoc-gen-grpc:插件被信号6杀死。

制造商:*** [/home/test/grpc/gens/src/proto/grpc/channelz/channelz.grpc.pb.cc]错误1

在我尝试交叉编译之前,这导致helloworld通信出现“ grpc segmentation fault”。为了明确说明我已按照以下步骤操作。

我删除了/ usr / local / lib /并清除了所有原始和grpc库

rm -f / usr / local / lib / libproto * / usr / local / lib / libgrpc *

已清理所有内容

每个git clean -xfd的git子模块

git clean -xfd

然后重新安装所有内容,但仍然出现上述错误。有人可以帮我解决这个问题吗?

注意:我删除了完整的grpc文件夹,将其重新克隆。已安装protobuf,并且protobuf安装成功,但是当我在gRPC中输入“ make”命令时,出现上述错误。

当我用Google搜索它时,这似乎是c ++方面的一些通用错误。

下面是我遵循的步骤。

•git clone -b $(curl -L http://grpc.io/releasehttps://github.com/grpc/grpc

•cd grpc

•git子模块更新--init

•cd third_party / protobuf

•./Autogen.sh

•./configure

•make && make install(Protobuf安装成功)

•转到grpc文件夹并制作。

这不成功,抛出'std :: system_error'实例后,调用throw终止

1 个答案:

答案 0 :(得分:2)

我为此找到了解决方案,由于pthread的配置不正确。

在protobuf文件夹中执行以下命令可以解决此问题。

pkg-config --cflags protobuf#打印编译器标志

pkg-config --libs protobuf#打印链接器标志

pkg-config --cflags --libs protobuf#同时打印

./ configure CXXFLAGS =“ $(pkg-config --cflags protobuf)” LIBS =“ $(pkg-config --libs protobuf)”

制作

[sudo]进行安装

转到grpc文件夹并运行make命令。