我正在尝试动态链接grpc greeting_client示例。 我正在尝试使用libgrpc ++。so,libprotobuf.so.10,libgrpc.so.3,libgrpc ++ _ reflection.so.1文件进行链接。
我已将这些文件添加到我的/ usr / lib目录中,现在我正尝试为greeting_client生成可执行文件。
我正在使用的命令是:g++ hello.pb.o hello.grpc.pb.o greeting_client.o -L/usr/lib -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed -ldl -o greeting_client -L/usr/local/include/google/ -L/usr/local/include/grpc -L/usr/local/include/grpc++
错误:
/usr/bin/ld: cannot find -lgrpc++_reflection
collect2: error: ld returned 1 exit status
我在/ usr / lib目录中有用于grpc ++ _ reflection的.so文件。 我可能缺少有关动态链接的内容。您能否指出如何动态链接示例的grpc库?
答案 0 :(得分:1)
经过研究,我找到了解决方案,问题是链接程序正在寻找libgrpc ++ _ reflection.so,但是我有libgrpc ++ _ reflection.so.14.0.0
一个快速的技巧是将libgrpc ++ _ reflection.so符号链接到libgrpc ++ _ reflection.so 答案在于g ++的-l选项,调用ld。如果您查看此命令的手册页,则可以执行以下操作:
g++ -l:libgrpc++_reflection.so.14.0.0 [...]
or: g++ -lgrpc++_reflection.so [...] ,
如果您的libs路径中有一个名为libgrpc ++ _ reflection.so的符号链接