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

相关文章

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、