Buildroot 移植 libjpeg 到 Jz2440

本文是在Buildroot 构建根文件系统(Jz2440)的基础上添加 libjpeg 第三方库,以支持应用程序在 Jz2440 的 LCD 上显示 jpg 格式的图片。
第 1 步: 在 buildroot 顶层目录输入 make menuconfig 命令,进入配置界面,配置如下:

Target packages
	->Libraries
		->Graphics
			->[*] jpeg support
				->jpeg variant (jpeg-turbo)

第 2 步:输入 make 继续编译 buildroot (注:buildroot 自动下载的 libjpeg 版本为 libjpeg-turbo-2.0.6.tar.gz),这里一次性编译成功;

第 3 步:复制 libjpeg 相关的库文件和头文件到系统交叉编译工具链(因为这里使用系统交叉编译工具来编译应用程序):
(1) 复制 libjpeg 相关的库文件到系统交叉编译工具链:

  • ① 在 buildroot 目录下搜索库文件:find -name "*jpeg*so*" ,搜索结果如下图所示:
    在这里插入图片描述
  • ② 这里我们把 output/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib/ 目录下的 jpeg 库拷贝到 arm-linux-gcc 交叉编译的 /tools/arm-linux-gcc-4.4.3/arm-none-linux-gnueabi/lib 目录下:
    sudo cp ./output/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib/*jpeg*so*  /tools/arm-linux-gcc-4.4.3/arm-none-linux-gnueabi/lib -rfd
    

(2) 复制 libjpeg 相关的头文件到系统交叉编译工具链:

  • ① 在 buildroot 目录下搜索头文件:find -name "*jpeg*.h" ,搜索结果图下图所示:
    在这里插入图片描述
  • ② 以上搜索到的头文件可能不全,根据自己编写应用程序和编译时产生的错误还需要 setjmp.h、jerror.h、jconfig.h 这三个头文件(注: 缺少 jconfig.h 头文件,会产生错误:error: 'JPEG_LIB_VERSION' undeclared (first use in this function),通过在buildroot 目录下搜索 JPEG_LIB_VERSION 发现它在 jconfig.h 定义),搜索这个三个文件,搜索结果如下:
    在这里插入图片描述
  • ③ 复制上面的头文件到 arm-linux-gcc 交叉编译的 /tools/arm-linux-gcc-4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/include 目录:
    sudo cp ./output/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/*jpeg*.h /tools/arm-linux-gcc-4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/include
    sudo cp ./output/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/setjmp.h /tools/arm-linux-gcc-4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/include
    sudo cp ./output/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/jerror.h /tools/arm-linux-gcc-4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/include
    sudo cp ./output/host/arm-buildroot-linux-gnueabi/sysroot/usr/include/jconfig.h /tools/arm-linux-gcc-4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/include
    

第 4 步:复制相关的库文件到开发板的文件系统:

  • ① 我们可以把上面的库文件直接复制到开发板的文件系统中,也可以在 buildroot 的输出镜像目录中找到 rootfs.tar,解压后然后搜索 jpeg 库:find -name "*jpeg*so*",搜索结果如下:
    在这里插入图片描述
  • ② 把上图的库文件拷贝到网络文件系统:
    cp ./usr/lib/*jpeg*so* ~/works/nfs/libjpeg/ -rfd
    
  • ③ 开发板挂载网络文件系统后,再把库文件拷贝到开发板根文件系统的 /usr/lib/ 目录下:
    cp /mnt/libjpeg/*jpeg*so* /usr/lib/ -rfd
    
    到此,交叉编译的关于 jpg 格式图片的应用程序就可以在 Jz2440 开发板运行了。注:编译时要添加编译参数 -ljpeg。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Louis@L.M.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值