phao.mqtt.c在ubantu上生成交叉编译环境下的库

2024-03-09 18:59

本文主要是介绍phao.mqtt.c在ubantu上生成交叉编译环境下的库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1:背景

在ubantu上进行交叉编译是一般会用到交叉编译器:例如arm-linux-gnueabihf-gcc。这样就会在x86 64位的架构下生成arm架构下可以执行的代码。
如果使用到交叉编译器中没有的库,就会报错
在这里插入图片描述

在ubantu上安装后对应的库文件后,在makefile中指定库的路径。就会找ubantu上的库,由于在ubantu上安装的库是x86 64位的,就会导致文件不符合。下面是库文件的路径。
在这里插入图片描述
在makefie中添加库文件的路径
在这里插入图片描述

再次编译会报文件格式不符合的错误
在这里插入图片描述
通过file查看下文件可以看出文件支持的架构和系统的位数。
在这里插入图片描述

2:解决方法

使用交叉编译器编译就得有对应得库文件。那么只要使用交叉编译器对安装包编译。生成32位arm架构得库就可以了
1:下载

git clone https://github.com/eclipse/paho.mqtt.c.git

2:新建文件夹保存生成的文件

cd paho.mqtt.c
mkdir build_arm

3:指定编译器编译

cmake .. -DPAHO_BUILD_STATIC=TRUE -DCMAKE_C_COMPILER=/usr/local/linaro49/bin/arm-linux-gnueabihf-gcc
make

… 表示CMakeLists.txt所在的相对路径

-DPAHO_BUILD_STATIC=TRUE 表示生成静态库,不需要可以不加,默认为FALSE。

-DCMAKE_C_COMPILER=xxx 表示指定交叉编译工具链的绝对路径。

查看生成的库文件
在这里插入图片描述
4:找一个路径存放生成得库文件
在Makefile指定你存放库文件的位置

再次编译就会发现报错消失一个
在这里插入图片描述

这篇关于phao.mqtt.c在ubantu上生成交叉编译环境下的库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/791656

相关文章

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成