Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;软件包,错误“;“SSL”的多重定义首先在此处定义;(gRPC) 我有一个私有的C++库,只对头文件进行访问,我尝试使用包和GRPC一起进行远程调用。_C++_Makefile_Cmake_Openssl_Grpc - Fatal编程技术网

c++;软件包,错误“;“SSL”的多重定义首先在此处定义;(gRPC) 我有一个私有的C++库,只对头文件进行访问,我尝试使用包和GRPC一起进行远程调用。

c++;软件包,错误“;“SSL”的多重定义首先在此处定义;(gRPC) 我有一个私有的C++库,只对头文件进行访问,我尝试使用包和GRPC一起进行远程调用。,c++,makefile,cmake,openssl,grpc,C++,Makefile,Cmake,Openssl,Grpc,问题: gRPC使用更新版本的libssl和libcrypto。 其中,由于专用库使用旧版本 当我试图将grpc与私有库一起编译时,当我执行make时,会出现以下错误 /usr/bin/ld: /usr/local/openssl/lib/libssl.a(ssl_lib.o): in function `SSL_clear': ssl_lib.c:(.text+0x2b0): multiple definition of `SSL_clear'; /home/user/.local/lib/l

问题:

gRPC使用更新版本的libssl和libcrypto。 其中,由于专用库使用旧版本

当我试图将grpc与私有库一起编译时,当我执行make时,会出现以下错误

/usr/bin/ld: /usr/local/openssl/lib/libssl.a(ssl_lib.o): in function `SSL_clear':
ssl_lib.c:(.text+0x2b0): multiple definition of `SSL_clear'; /home/user/.local/lib/libssl.a(ssl_lib.cc.o):ssl_lib.cc:(.text+0x8778): first defined here

/usr/local/openssl/lib/libssl.a是私有库所需的验证

/home/user/.local/lib/libssl.a是gRPC所需的版本

我将如何着手解决这个问题。
由于私有库使用特定版本的openssl(1.0.2s),该版本与gRPC不兼容

很抱歉听到这个消息,但您的问题是什么?嘿@SamVarshavchik,我编辑了这个问题以提供更多上下文使用同一库的多个版本并不容易。唯一可行的方法不是直接与备用共享库链接,而是使用
dlopen
从该库解析符号并直接调用它。当然,无论如何,您绝对不可能使用一个版本的库打开SSL连接,并期望另一个版本使用它。