bl2028n编译环境搭建

作者分享了在物联网项目中遇到的编译问题,包括在Windows和Ubuntu环境下安装make失败,最终发现是由于编译环境的32位兼容性问题。通过添加32位兼容库和确认交叉编译链版本,解决了固件加密脚本的编译错误。
摘要由CSDN通过智能技术生成

先讲一下,大概的背景,最近在做一个物联网项目,然后模组厂就丢给我一个sdk,和我说make -j8就可以编译了。

实际上我在安装完编译环境之后总是会出各种各样的问题,犯了很多重复编译的错误,对着搜索引擎搜来搜去,一点用都没有。

确认编译环境的操作系统

        刚开始的时候我花了大量时间在windows环境下安装make 环境,只能说效果很差,到处都是错误,改了一个又冒出一个,这种情况下就要注意了,原厂给的代码存在大量错误的可能性很小,偶尔改一两个错误还是有可能的,但是连续改很多。大概是其他的问题不要在这钻牛角尖,徒耗时间了。

        后来装了一个ubuntu22.04也是不行,大量报错。都是一些编译缺少文件的错误。后来经过询问sdk的人才了解到系统是16.04版本。(脸皮要厚该问就问)

        但是我在16.04编译的时候依然出错,错误是最后固件加密的时候有一个叫做encrypt二进制脚本除了错误。

/crc_binary/encrypt: Syntax error: "("

刚开始的时候我还认为是这个文件使用的时候除了错于是在.mk文件中找来找去,发现并没有什么错误。搜了一下再项目中发现其实这个encrypt文件实际上是个二进制文件

然后使用fiie命令就是发现这个实际上是一个64位的二进制文件,

由于后面的交叉编译链需要32位环境,所以编译环境很明了了,64位16.04ubuntu安装32位兼容

更新软件包列表: 打开终端并运行以下命令来更新软件包列表:

sudo apt update
安装兼容性库: 运行以下命令来安装兼容性库和其他必要的软件包:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386
这些命令将为您的系统添加对 32 位架构的支持,并安装一些兼容性库,以便您能够在 64 位系统上运行 32 位程序。

验证安装: 安装完成后,您可以使用以下命令来验证是否正确安装了 32 位支持:

dpkg --print-foreign-architectures

确认交叉编译链版本(编译器版本) 

交叉编译链的环境比较好确认,就是打开application.mk文件发现了备注的交叉编译链版本

4_9-2015q1

在ubuntu16.04使用apt 命令安装的默认就是这个版本的gcc-arm-none-eabi

sudo apt-get install gcc-arm-none-eabi

安装好后可以使用

arm-none-eabi-gcc -v

命令查看版本,

验证

做物联网项目经常换模组很正常,所以会经常搭建编译环境,一定要思路清晰,不然胡搜乱验证,一个星期搞不定环境还是让人听挫败的。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值