首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB C驱动程序在安装OpenSSL时出现了奇怪的错误

问MongoDB C驱动程序在安装OpenSSL时出现了奇怪的错误
EN

Stack Overflow用户
提问于 2021-10-15 07:24:56
回答 2查看 251关注 0票数 0

当我试图通过MongoDB安装CMake C驱动程序时,在编译过程中会出现如下错误;

  • libmongoc-1.0.so.0.0.0: undefined reference to "OSSL_HTTP_parse_url"
  • libmongoc-1.0.so.0.0.0: undefined reference to "SSL_get1_peer_certificate"

我在Ubuntu20.04上,我的OpenSSL版本是OpenSSL 1.1.1f,Ubuntu说它是最新的。我在MongoDB的官方C驱动程序设置上遵循方向。如果我的OpenSSL包不知怎么坏了,我该如何修复呢?

当我尝试使用来自Docker的Ubuntu20.04映像并在容器上运行它时,我可以用同一个OpenSSL包很好地编译它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-25 20:51:57

我不知道为什么,但是在网站(cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..)上用sudo执行cmake配置部分解决了这个问题。也许它让CMake找到了正确的OpenSSL版本。我没有在OpenSSL上执行任何更新。

票数 0
EN

Stack Overflow用户

发布于 2021-10-15 09:20:06

一般的建议是:只要有可能,就坚持使用默认值(apt-get install libmongoc-1.0-0)。

不确定您正在尝试构建什么/如何构建,但根据证书 (是我的):

SSL_get0_peer_certificate()和SSL_get1_peer_certificate()添加在3.0.0中。SSL_get_peer_certificate()在3.0.0中被否决。

OSSL_HTTP_parse_url也是如此。

因此,您需要(更新的) OpenSSL 3.0 (不知道为什么没有在安装URL中指定)。

很可能您必须自己构建它( --prefix=%OPENSSL30_INSTALL_DIR% )--确保设置它并将它(%OPENSSL30_INSTALL_DIR%)传递给(libmongoc的)配置工具。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69581227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档