undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘

这篇具有很好参考价值的文章主要介绍了undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Crow的时候需要注意crow依赖asio依赖OpenSSL,asio要求1.22以上版本,我使用的是1.26.0;
这个版本的asio要求OpenSSL是1.0.2,其他版本我得机器上编不过,ubuntu上默认带的OpenSSL是1.1.1;
所以我下载了OPENSSL1.2.0重装,地址: https://www.openssl.org/source/old/
编译cpp启用Crow的SSL时会出现一些问题:
比如:

  • 1 undefined reference to `SSL_library_init’
    undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘,linux,ssl,crow

出现这个提示需要在编译时指定链接 crypto 和 ssl 库

  • 2 undefined reference to `dlopen’
    undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘,linux,ssl,crow

出现这个提示需要在编译时指定链接 dl 库

  • 3 undefined reference to `X509_certificate_type’
    undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘,linux,ssl,crow

出现这个提示需要在编译时指定链接openssl的位置;

  • 4 以上需要指定的库和地址都加上之后还是报错,可能是指令顺序问题;
    例如
// ×
g++ example_ssl.cpp -L/usr/local/openssl/lib -lssl -ldl -lcrypto -DCROW_ENABLE_SSL=1 -o ssl_example -std=c++11 -lpthread

// √
g++ example_ssl.cpp -L/usr/local/openssl/lib -lssl -lcrypto -DCROW_ENABLE_SSL=1 -o ssl_example -std=c++11 -lpthread -ldl

上面两行只是调整了 -ldl 所在的位置,就会消除部分错误,
undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘,linux,ssl,crow
具体原因参考
https://qastack.cn/programming/956640/linux-c-error-undefined-reference-to-dlopen

https://stackoverflow.com/questions/11893996/why-does-the-order-of-l-option-in-gcc-matter/11894098#11894098文章来源地址https://www.toymoban.com/news/detail-639066.html

到了这里,关于undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【debug】OpenCV出现问题:undefined reference to ‘cv::Mat::Mat()‘

    参考:动手学ROS2 分析原因: undefined reference to \\\'cv::Mat::Mat()\\\' 原因在于g++找不到库文件,解决方法就是我们帮助它定位到库文件的位置,并通过-L参数指定库目录,-l(小写L)指定库的名字。 解决方法: 在执行命令时添加后缀参数

    2024年02月08日
    浏览(35)
  • Dev C++中出现 undefined reference to XXX 错误的解决方式

            主函数中调用在其他文件中定义的函数,编译报错:未定义的引用xxx。         原理:编译器在生成可执行文件的过程包括预处理、编译、汇编、链接,这4个过程,这个问题一般出现在 链接 过程,所谓的链接过程,就是把不同的目标文件粘合在一起,生成一

    2024年02月03日
    浏览(33)
  • Keil写STM32程序.axf: Error: L6218E: Undefined symbol HAL_RTC_Init (referred from rtc.o)报错解决办法

    在写RTC的程序时,报如下的错误:....Outputatk_f103.axf: Error: L6218E: Undefined symbol HAL_RTC_Init (referred from rtc.o) 显示没有定义 网上有很多解决办法,这里提供一种思路 就是可能是由于没有添加相应的驱动文件,所以需要添加相应的stm32的驱动文件到工程中 点击添加文件,我的是

    2024年02月06日
    浏览(36)
  • openssl库HMAC使用 undefined reference to `HMAC_CTX_new‘

    由于使用的openssl库版本的问题 HMAC_CTX *HMAC_CTX_new(void) 为OpenSSL 1.1.0后开始引入的函数,老的库要使用 void HMAC_CTX_init(HMAC_CTX *ctx) 。 函数原型 官网介绍 使用 HMAC的实现在crypto/hmac/hmac.c中,如下: evp_md指明HMAC使用的摘要算法; key为秘密密钥指针地址; key_len为秘密密钥的长度;

    2024年02月11日
    浏览(38)
  • Qt 编译纯c的C99的项目, error: undefined reference to `f()‘

    把Cpp的后缀该为C是什么样的 尝试引用一个奇门排盘的c程序,在git上找到的叫cqm, 然后总是报错 error: undefined reference to `f()\\\' 很是郁闷 于是新建了个项目试验一下,终于摸清了需要命名空间。 后来这么写就可以了 a.h  a.cpp (c文件不支持命名空间!) test.cpp 引用的cpp

    2024年02月07日
    浏览(40)
  • yolov8使用C++推理的流程及注意事项  undefined reference to `xxxxx‘

    1.下载yolov8项目源码GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch ONNX OpenVINO CoreML TFLite  2.下载opencvReleases - OpenCV,建议版本=4.7.0,选择下载源码, windows版本由于使用的编译器与我们所使用的mingw不一致,后续会出现错误,所以我们选择自己编译 3.下载cmake编译工具,添加到环

    2024年02月11日
    浏览(26)
  • 调用OpenCV库出现: undefined reference to `xxxxx‘ 的解决办法(使用MinGW编译器)

    我的CMakeLists.txt如下: cpp代码如下: 因为我的c++程序采用mingw64编译,所以使用 之后,总是出现undefined reference to cv::Mat::Mat()等一系列的undefined reference to XXX 原因是没有正确链接到动态库。或者之前有安装其他版本的opencv 重新编译一份OpenCV的源码再使用 编译过程参考: https

    2024年02月05日
    浏览(51)
  • 从链接器的角度详细分析g++报错: (.text+0x24): undefined reference to `main'

    /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start\\\': (.text+0x24): undefined reference to `main\\\' collect2: error: ld returned 1 exit status    在使用g++编译链接两个C++源文件main.cpp以及VecAdd.cpp时出现了以上编译报错。main.cpp中引用了VecAdd.cpp中定义的函数vecAdd来实现两个

    2024年02月08日
    浏览(30)
  • centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘

            在我辛辛苦苦编译成功 glib 库后(看我上一篇文章 centos7 glib2.0 arm版本的编译),以为可以顺利编译我的 bluez ARM 版本,结果出现了最后一个错误(其中一个是私有库里的),如: 就是这个 g_thread_new 没有找到实现,然后在网上搜了半天,都说是 glib 库里的实现,但

    2024年02月07日
    浏览(24)
  • error: undefined reference to ‘cv::Mat::~Mat()‘解决AndroidStudio集成OpenVC出现的编译报错问题

    本来这种类型的博客不是笔者想写的,不过这个问题,笔者经过网上一番搜索却没有可用的解决方案,因此分享出来帮助大家填坑。 OpenCV官方的Android SDK在这里下载,集成方法就不多介绍了,可以看这两位博主的文章:  小小情意的​ Android 接入 OpenCV库的三种方式 ​  春末

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包