嵌入式 linux 之 Lzma 移植

简介: 嵌入式 linux 之 Lzma 移植

基本介绍


在嵌入式很多应用场景中,经常会遇到存储空间不够。这个时候就需要采取一些手段,将应用程序或者文件压缩。对启动速度要求不高的场合可以使用。


本文基于开源库 LZMA SDK (https://www.7-zip.org/sdk.html)做介绍


下载


image.png


解压


image.png


LZMA-SDK包括以下内容:


  • LZMA编码器和解码器的C ++源代码


  • .7z压缩和解压缩的C ++源代码(精简版)


  • LZMA / LZMA2 / XZ压缩和解压缩的ANSI-C兼容源代码


  • 7z解压缩的ANSI-C兼容源代码示例


  • 用于LZMA压缩和解压缩的C#源代码


  • 用于LZMA压缩和解压缩的Java源代码


  • lzma.exe为.lzma压缩和解压


  • 7zr.exe与7z存档一起使用(7-Zip的7z.exe的简化版本)


由于是在嵌入式平台移植,故只介绍C语言的交叉编译。


7zDec 移植


  • cd lzma1900/C/Util/7z


image.png


  • vim makefile.gcc。将工具链修改为对应平台


image.png


  • make -f makefile.gcc.生成可执行程序 7zDec


image.png


  • 7zDec 支持的命令。默认只支持7za命令的3个选项,而不支持-o(指定解压目录)功能。因此,如果需要该功能,则需要修改源码。


image.png


  • e:解压当前目录下


  • x:解压到同名目录下


  • l:列出包含的文件内容


  • 添加o支持。vim 7zMain.c


  1. 添加用户说明

image.png


  1. 参数处理

image.png


  1. 文件处理

image.png


  1. 资源释放

image.png


  1. 测试命令


7zDec x xxx.7z o/tmp


lzma 移植


  • cd lzma1900/C/Util/Lzma

image.png


  • vim makefile.gcc

image.png


  • make -f makefile.gcc 生成可执行程序 lzma

image.png


  • lzma 支持的命令:目前只支持e和d两个命令


image.png


  • lzma d xxx.lzma /tmp/xxx:解压到指定目录下。


总结


本文主要介绍了,嵌入式项目中两种常见的解压工具移植。将应用程序或者文件压缩,虽然省掉了空间。同时会带来新的问题,启动时间过慢,占用过多的内存。具体情景视产品定义,酌情处理。

相关文章
|
23天前
|
JSON 机器人 Linux
推荐一款嵌入式Linux开源框架与封装-cpp-tbox
推荐一款嵌入式Linux开源框架与封装-cpp-tbox
54 3
|
11天前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
|
19天前
|
Linux 计算机视觉
Linux交叉编译opencv并移植ARM端
通过以上步骤,你可以在Linux上交叉编译OpenCV,并将生成的库文件和头文件移植到ARM平台上,从而在ARM上使用OpenCV。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
36 0
|
24天前
|
Linux
嵌入式Linux系统(NUC980)tf卡出错处理errors=remount-ro改为errors=continue
嵌入式Linux系统(NUC980)tf卡出错处理errors=remount-ro改为errors=continue
7 1
|
24天前
|
安全 Linux
嵌入式Linux系统关闭串口调试信息的输出
嵌入式Linux系统关闭串口调试信息的输出
17 1
|
24天前
|
Linux 编译器 网络安全
嵌入式Linux移植dropbear
嵌入式Linux移植dropbear
19 3
|
24天前
|
存储 Ubuntu Linux
制作一个嵌入式Linux的应用程序升级文件
制作一个嵌入式Linux的应用程序升级文件
12 2
|
24天前
|
传感器 Linux API
嵌入式Linux串口编程简介
嵌入式Linux串口编程简介
19 1
|
25天前
|
编解码 Ubuntu 算法
【Linux】NUC977移植使用MQTT(基于mosquitto)
【Linux】NUC977移植使用MQTT(基于mosquitto)
|
1月前
|
存储 安全 Linux
嵌入式Linux系统bringup 启动全景解析
嵌入式Linux系统bringup 启动全景解析
70 0