最近我已经开始研究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/release)https://github.com/grpc/grpc
•cd grpc
•git子模块更新--init
•cd third_party / protobuf
•./Autogen.sh
•./configure
•make && make install(Protobuf安装成功)
•转到grpc文件夹并制作。
这不成功,抛出'std :: system_error'实例后,调用throw终止
答案 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命令。