如何动态地 link grpc 库 c++?
How to dynamically link grpc library c++?
我正在尝试动态 link grpc greeting_client 示例。
我正在尝试使用 libgrpc++.so, libprotobuf.so.10, libgrpc.so.3,libgrpc++_reflection.so.1 文件来执行 linking.
我已将这些文件添加到我的 /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 文件。
我可能遗漏了一些关于动态 linking 的内容。你能指出如何动态地 link 这个例子的 grpc 库吗?
经过一些研究我找到了解决方案,问题是链接器正在寻找 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 [...] ,
如果您的库路径中有一个名为 libgrpc++_reflection.so 的符号链接
我正在尝试动态 link grpc greeting_client 示例。 我正在尝试使用 libgrpc++.so, libprotobuf.so.10, libgrpc.so.3,libgrpc++_reflection.so.1 文件来执行 linking.
我已将这些文件添加到我的 /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 文件。 我可能遗漏了一些关于动态 linking 的内容。你能指出如何动态地 link 这个例子的 grpc 库吗?
经过一些研究我找到了解决方案,问题是链接器正在寻找 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 [...] ,
如果您的库路径中有一个名为 libgrpc++_reflection.so 的符号链接