热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

交叉编译百度开放云的MQTT-c时遇到的问题总结

MQTT-c依赖photo库photo库依赖libssl和libcrypto两个库,这两个库包在openssl中OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密

MQTT-c 依赖photo库
photo库依赖libssl和libcrypto两个库,这两个库包在openssl中
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

昨天编译MQTT-c 出现错误:

arm-linux-gcc -c src/PublisherSync.c -I/home/whl/output/arm-linux/include
arm-linux-gcc -o PublisherSync ConnectorSync.o PublisherSync.o -L/home/whl/output/arm-linux/lib -lpaho-mqtt3cs -I/home/whl/output/arm-linux/include -lrt
/usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/../../../../arm-unknown-linux-gnueabi/bin/ld: warning: libssl.so.1.0.0, needed by /home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so, not found (try using -rpath or -rpath-link)
/usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/../../../../arm-unknown-linux-gnueabi/bin/ld: warning: libcrypto.so.1.0.0, needed by /home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so, not found (try using -rpath or -rpath-link)
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_connect'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
ERR_print_errors_fp’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_get1_session'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
CRYPTO_set_locking_callback’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_set_session'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
OPENSSL_add_all_algorithms_noconf’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_CTX_set_verify'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
SSL_load_error_strings’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_get_cipher_list'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
SSLeay_version’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_CTX_use_certificate_chain_file'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
SSL_free’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_CTX_set_default_passwd_cb_userdata'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
SSL_CTX_new’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_get_verify_result'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
SSL_read’
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to SSL_set_fd'
/home/whl/output/arm-linux/lib/libpaho-mqtt3cs.so: undefined reference to
SSL_pending’

这个错误很奇怪,排查了好久,因为同样的Makefile文件,交叉编译 时就报错,编译 x86版本时就很正常。
后来google到要在编译时加上 -lssl -lcrypto,就可以顺利编译通过了。


推荐阅读
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • struts2重点——ValueStack和OGNL
    一、值栈(ValueStack)1.实现类:OGNLValueStack2.对象栈:CompoundRoot( ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了最长上升子序列问题的一个变种解法,通过记录拐点的位置,将问题拆分为左右两个LIS问题。详细讲解了算法的实现过程,并给出了相应的代码。 ... [详细]
author-avatar
晓雷sky
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有