对符号 X509_free 的未定义引用

2024-01-21

我正在尝试使用 mongodb 旧版 C++ 驱动程序。 (这里的“legacy”是指生产版本,fwiw。)在使用 clang++ 3.6 和 boost 1.55(来自 ubuntu 软件包存储库)并使用 mongo-cxx-driver 从 git 中拉取的 ubuntu 15.04 主机上,我编译了驱动程序,然后尝试编译测试程序。

$ clang++ -std=c++14 mongo.cc -pthread -lmongoclient -lboost_thread \
  -lboost_system -lboost_regex -lssl -o mo

我看到这个错误:

clang++ -std=c++14 mongo.cc -pthread -lmongoclient -lboost_thread -lboost_system -lboost_regex -lssl -lcrypt -o mo
/usr/bin/ld: /usr/local/lib/libmongoclient.a(ssl_manager.o): undefined reference to symbol 'X509_free@@OPENSSL_1.0.0'
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: error adding symbols: DSO missing from command line
clang: error: linker command failed with exit code 1 (use -v to see invocation)

显然我失踪了X509_free(),但看起来应该在 libssl 中(dpkg 和库符号链接本身说是 openSSL1.0.0)。

非常感谢您的任何提示。

我认为这在这里并不重要,但这是 mongo.cc:

#include <cstdlib>
#include <iostream>
#include "mongo/client/dbclient.h" // for the driver

void run() {
  mongo::DBClientConnection c;
  c.connect("localhost");
}

int main() {
    mongo::client::initialize();
    try {
        run();
        std::cout << "connected ok" << std::endl;
    } catch( const mongo::DBException &e ) {
        std::cout << "caught " << e.what() << std::endl;
    }
    return EXIT_SUCCESS;
}

你应该链接到libcrypto.so, not libcrypt.so.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对符号 X509_free 的未定义引用 的相关文章

  • 将 SQL Server varBinary 数据转换为字符串 C#

    我需要帮助弄清楚如何转换来自SQL服务器表列设置为varBinary 最大 转换为字符串以便将其显示在标签中 这是在C 我正在使用数据读取器 我可以使用以下方式提取数据 var BinaryString reader 1 我知道该列包含之前
  • c# - 显示小数点到小数点后 6 位 [重复]

    这个问题在这里已经有答案了 可能的重复 具有 N 个小数位的 Double ToString https stackoverflow com questions 3059759 double tostring with n number o
  • 如何重命名序列化对象列表后生成的 XML 属性

    我正在序列化对象列表List
  • dup2() 和 exec()

    include
  • 如何通知父线程所有子线程都已终止?

    我有一个控制台应用程序正在移植到 WPF 该应用程序有 3 个工作线程 在将一些输出结果打印到屏幕上之前 这些线程都连接到主线程 我的理解是 如果我尝试在 WPF 应用程序中执行相同的操作 GUI 将被阻止并且不会响应用户 那么如何通知父线
  • C# 并行与并行线程代码性能

    我一直在测试 System Threading Parallel 与线程的性能 我很惊讶地发现并行比线程花费更长的时间来完成任务 我确信这是由于我对并行的了解有限 我刚刚开始阅读 我想我会分享一些片段 如果有人可以向我指出并行代码比线程代码
  • 计算复杂数组的abs()值的最快方法

    我想计算 C 或 C 中复杂数组元素的绝对值 最简单的方法是 for int i 0 i lt N i b i cabs a i 但对于大向量来说 速度会很慢 有没有办法加快速度 例如使用并行化 语言可以是 C 或 C 鉴于所有循环迭代都是
  • boost::asio::io_service 是否保留处理程序的顺序?

    Does boost asio io service http www boost org doc libs release doc html boost asio reference io service html保证处理程序的调用顺序与
  • EF Core 一对多关系列表返回 null

    我正在尝试学习如何在 EF Core 中正确利用 DbContext 我有一个团队课程 public class Team public int ID get set public string Name get set public bo
  • 如何在Azure功能中添加razor视图文件?

    我正在创建一个应用程序 它是 azure 函数项目 我想在该项目中使用 Razor 视图 我应该在 azure 函数中使用任何模板引擎吗 得益于一些方面的进步剃刀之光项目 https github com toddams RazorLigh
  • 为什么这个单独的定义会导致错误?

    挑战 我有这段代码无法编译 你能找出问题所在吗 有一次让我很头疼 header namespace values extern std string address extern int port cpp file std string v
  • C 中的链表数组:初始化和插入?

    我需要创建一个链表数组 如图所示 这就是我到目前为止所做的 typedef struct Node int data struct Node next Node int main void Node link 5 for int q 0 q
  • Request.Form 和 Request.QueryString 之间的区别?

    有人可以告诉我两者之间的确切区别吗Request Form and Request QueryString 我知道一个区别 比如 如果HTTP请求方式为POST 则用户提交的数据在申请表 收藏 如果HTTP请求方法是GET 则用户提交的数据
  • 为什么必须通过 this 指针访问模板基类成员?

    如果下面的类不是模板 我可以简单地拥有x in the derived班级 但是 通过下面的代码 我have to use this gt x Why template
  • C++ 联合数组和变量?

    在C 中没有办法做这样的事情吗 union Scalar x y Scalar v 2 Where x v 0 and y v 1 既然您使用的是 C 而不是 C 并且它们具有相同的类型 为什么不直接将 x 设为对 v 0 的引用 将 y
  • 如何创建和使用类箭头运算符? [复制]

    这个问题在这里已经有答案了 因此 在到处研究之后 我似乎找不到如何创建类箭头运算符 即 class Someclass operator gt 我只需要知道如何使用它并正确使用它 它的输入是什么 它返回什么 我如何正确地声明 原型化它 运算
  • 将多个 Blob 输入传递到 QueueTrigger Azure 函数的最佳方法

    问题 触发后 生成 3 个 XML 文件 完成后将它们通过 ftp 传输到站点 目前的方法 我有一个 HTTP 触发器 Azure 函数 运行时将构造 3 个 XML 文件并将它们保存到 Azure 存储 Blob 容器中 由于有多个输出
  • C# 3.0 中自动属性和公共字段的区别

    我无法理解为什么 C 3 0 中存在自动实现的属性语言功能 当你说的时候有什么区别 public string FirstName than public string FirstName get set 因为它们在生成的 IL 代码 和机
  • 在Framework 4.6项目中使用.net core DLL

    我已经在 net core 2 0 中构建了一个 DLL 现在我想在使用 net 4 6 1 框架的 WinForms 项目中使用它 我可以引用该 dll 但收到 System IO FileLoadException 表示找不到 Syst
  • DataGridView 捕获用户行选择

    我在处理选择时遇到问题DataGridView 我的网格视图包含一个金额列 表单上有一个文本框 应显示所选网格视图行的总数 因此 我需要在用户选择 取消选择 gridview 行时捕获事件并相应地计算 添加 减去 金额 我找到了两种方法 使

随机推荐

  • C++11 中的纯函数

    C 11 中的一个可以以某种方式gcc将函数 不是类方法 标记为const告诉它是pure并且不使用全局内存而仅使用其参数 我试过了gcc s attribute const 它是恰恰我想要的是 但当函数中触及全局内存时 它不会产生任何编译
  • PHP $_POST 不带重音符号

    这个问题已经解决了 看我的回答看看解决方案 我试图通过使用 POST 提交到 PHP 页面的 html 表单向我的数据库添加带有重音字母的文本 问题是重音字母被转换为不可读的字符 我有这个表格
  • 在目录树中查找具有给定扩展名的文件

    我有一个文件夹 其中有一些文件和子文件夹 例如 我需要返回具有给定扩展名的文件名或相对地址 如果文件位于子文件夹中 html 例如 这是给定文件夹的结构 文本 某事 ncx 文本 123 html 内容 opf toc ncx Flow 0
  • Ctrl+。 (点) 使“e”出现,而不是在 Gnome 上的 VSCode 中显示建议

    我在 Gnome 上使用 VSCode 在 Arch 上的 XOrg 上 最近以来 捷径Ctrl 停止工作 尽管仍然列在键盘快捷键中并且所有扩展都被禁用 相反 带有下划线的e出现 当按两次 Enter 或按一次 ESC 时 该字符消失 当写
  • MySQL Join on LIKE 语句

    我需要计算数据库中每个组中有多少用户 不幸的是 数据库设计不是很好 用户 uid 是针对组表中的组存储在 LONGTEXT 字段列名称 owncloudusers 中 owncloudusers 数据示例 i 0 s 36 25C967BD
  • 使用不同的 dockerfiles 从源目录构建 docker 镜像

    我的目标是从相同的源代码构建几个不同的 docker 镜像 我有我的 src 文件夹 node js 项目 在 src 内我有第一个 dockerfile 和第二个 dockerfile 为了构建项目 我使用这个标准命令行 sudo doc
  • 如何在 Rails 7 引擎中使用 Tailwind CSS gem?

    如何在轨道发动机中使用顺风 根据文档 向 Rails 生成器提供 css 参数应该可以工作 使用 Rails 7 0 2 2 引擎生成 rails plugin new tailtest mountable full d postgresq
  • Android PhoneGap 通知状态栏不显示任何内容

    我正在尝试使用名为的 Phonegap 插件在 Android 模拟器设备上显示通知消息StatusBarNotification LINK https github com phonegap phonegap plugins tree m
  • ASP.NET MVC 软件设计模式:DI、存储库、服务层

    EDIT 我是否应该将服务层和存储库层放入一个项目中 以便 Web 项目能够引用 DbContext 对象 现在我的网络 控制器 无法引用 dbcontext 对象 什么是正确的方法 service and repository are t
  • AngularJS 访问嵌套 ngRepeat 中 ngRepeat 父级的 $first

    我试图从嵌套的 ngRepeat 中访问 ngRepeat 父级的 first 有没有办法在嵌套的 ngRepeat 中使用别名或访问 first 我已经尝试过 parent first 但它似乎不起作用 通过插值输出到屏幕表明它与嵌套子级
  • 在 php 和 htaccess 中上传图像的安全方法

    我在互联网上找到了以下代码 用于在 php 中安全上传图像 我想知道它涵盖了图像上传中所有可能的攻击方式 define MAX SIZE EXCEDED 101 define UPLOAD FAILED 102 define NO UPLO
  • 使用 ITextSharp 绘制矢量图形

    我听说 ITextSharp 不支持 JAVA2D 类 这是否意味着我无法从客户端数据库导入向量点以 打印 到 ITextSharp 应用程序 在进一步提出这个建议之前 我真的很想找到这个问题的答案 有人有这方面的真实经历吗 虽然您确实无法
  • 原则2:无法推翻生成价值策略?

    我有一个具有如下 ID 的实体 ORM Column type integer ORM Id ORM GeneratedValue strategy AUTO protected id 我正在将数据迁移到该实体中 并希望保留现有密钥 我在看
  • 如何在谷歌地图上绘制带有按钮、文本和图像的叠加层

    我是安卓新手 我正在开发一个使用地图的项目 我想在特定的地理点上绘制一个覆盖项目 其中包含一个矩形 一些位置信息和一个按钮 该按钮在单击时使覆盖不可见 我可以在overlay的draw方法中使用drawRect 和drawText 绘制矩形
  • 当我声明 testArray[] = {'1','2','3','4','5'} 时,为什么数组中存储的是 49, 50, 51, 52? (C语言编程)

    当我声明 testArray 1 2 3 4 5 时 为什么数组中存储的是 49 50 51 52 我应该如何初始化字符串数组 谢谢 您正在初始化数组人物 数组中存储的是这些字符的 ASCII 值 您可以使用如下方式打印字符值 for in
  • 这些仅复制备份选项是什么意思?

    我目前正在尝试备份一个空的 SQL Server 2008 R2 数据库 该数据库是我为暂时搁置的项目设计的 当我注意到有一个选项可以进行仅复制备份时 我正在通过 SQL Management Studio 执行备份过程 我查了一下它是什么
  • 如何让 Haskero 对非详尽模式匹配发出警告

    我目前正在评估Haskero https marketplace visualstudio com items itemName Vans haskero in 视觉工作室代码作为替代 Haskell 编辑器而不是Atom with 原子哈
  • 为什么在 &mut T 工作时,我不能使用 &mut Box 一次多次借用可变变量?

    我正在尝试在 Rust 中实现一个链表 但在理解这两个函数之间的区别时遇到了一些困难 enum List
  • 删除远程分支不会从 GitHub 中删除

    我有一个当地的分支机构 比如说hotfix 我把它放在 GitHub 上使用 git push u origin hotfix 然后合并分支后 我想删除它 所以我输入 git branch d hotfix 这会在本地删除分支 然而 远程分
  • 对符号 X509_free 的未定义引用

    我正在尝试使用 mongodb 旧版 C 驱动程序 这里的 legacy 是指生产版本 fwiw 在使用 clang 3 6 和 boost 1 55 来自 ubuntu 软件包存储库 并使用 mongo cxx driver 从 git