通过 bitbake 移植 qrencode 到嵌入式
通过网上知道 qrencode 可以生成二维码,那么怎么通过它移植进设备呢
1.先下 qrencode 源码,qrencode-3.4.4.tar.gz。放入系统对应位置,打开看了一下,里面已经有configure.ac, Makefile.am等文件了,那么就不用再写了。
2.编写qrencode_git.bb文件,如下:
DESCRIPTION = "qrencode libs" ---- 描述,无所谓名字
HOMEPAGE = "http://www.qrencode.com/" ---- 无所谓
LICENSE = "Apache-2.0" ---- 无所谓
LIC_FILES_CHKSUM = "file://${COREBASE}/meta-oem/files/oem-licenses/${LICENSE};md5=89aea4e17d99a7cacd*******" ---- 抄其他的PR = "r0" ---- 无所谓,r0,r1 都行SRC_URI = "file://${WORKSPACE}/oem/app-framework/qrencode" ---- 源码目录
S = "${WORKDIR}/${PN}" ---- 编译目录inherit autotools ---- autotools 工具do_install_append() { install -d ${D}${includedir}/ ---- 抄其他的,必要
}
3.开始编译,bitbake -fc install qrencode,duang,出错了。
那就看错误信息:
| configure.ac:85: error: possibly undefined macro: AM_PATH_SDL
| If this token and others are legitimate, please use m4_pattern_allow.
| See the Autoconf documentation.
| autoreconf: /build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/autoconf failed with exit status: 1
| + bbfatal 'autoreconf execution failed.'
| + echo 'ERROR: autoreconf execution failed.'
| ERROR: autoreconf execution failed.
| + exit 1
可知 configure.ac 85行里,AM_PATH_SDL 这个宏没定义,那就把它屏蔽吧
if test x$build_tests = xyes ; thenSDL_REQUIRED_VERSION=1.2.0#AM_PATH_SDL($SDL_REQUIRED_VERSION,,AC_MSG_WARN([*** SDL $SDL_REQUIRED_VERSION or better is required.]))AC_MSG_NOTICE([SDL check done.])AM_ICONV_LINK
fi
AM_PATH_SDL 这个宏是什么意思呢?这篇文章有介绍:http://www.linuxsir.org/bbs/thread239728.html
4.再次编译,发现刚才的错误没了,但是有另外的错误了:
| configure: error: Package requirements ("libpng") were not met:
|
| No package 'libpng' found
这是什么意思,明显是缺少 libpng 库啊,那就去增加吧。
5.找到 linpng 开源源码,我的是 libpng 1.6.17 ,里面也有 对应的configure.ac, Makefile.am等文件了,所以png_git.bb 文件跟qrencode_git.bb 差不多,不列出来了。
开编png,duang,毫无疑问没那么顺利,依旧出错了:
configure.ac:30: require Automake 1.13, but have 1.11.2
| autoreconf: automake failed with exit status: 1
| + bbfatal 'autoreconf execution failed.'
| + echo 'ERROR: autoreconf execution failed.'
| ERROR: autoreconf execution failed.
| + exit 1
还是configure.ac 这个文件有问题,30行,根据意思有 1.11,但没有1.13,那就把configure.ac里面的1.13改成1.11吧:
AM_INIT_AUTOMAKE([1.11 foreign dist-xz color-tests silent-rules subdir-objects])
OK,编译通过了。
6.继续qrencode部分,可知qrencode依赖libpng库,那么qrencode_git.bb文件需要增加一行了:DEPENDS = "png"
再次开始qrencode编译:
bitbake -fc cleanall qrencode && bitbake -fc install qrencode
编译通过
7. qrencode 生成了 \usr\bin\qrencode ,那么运行qrencode -o test.bmp "hao",会不会生成二维码图片呢?依旧不会一帆风顺。
根据错误,push 两个库 \usr\lib\libpng16.so.16 \usr\lib\libqrencode.so.3,OK,生成二维码图片了。
接下来就应该不难了,修改bb文件,加install内容,根据相应内容生成二维码图片,对了,还有二维码大小。
这次难点主要是bitbake移植,自己弄了满满一天,最后都不用源码的configure.ac, Makefile.am等文件,自己写这些,但还是不得要领,移植失败。
然后请春神出马,不到半天,就搞定了。记之,学之。
通过 bitbake 移植 qrencode 到嵌入式相关推荐
- mysql 客户端 交叉编译_移植mysql到嵌入式ARM平台
移植MySQL到嵌入式ARM平台 MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.ph ...
- 移植mysql到嵌入式ARM平台
移植MySQL到嵌入式ARM平台 MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space ...
- 移植 SOEM 到嵌入式平台 STM32F767
STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码 提供配套CUBE工程. SOEM协议栈使用1.3.1版本. 可配套NUCLEO-H743Z ...
- 移植Kdump至嵌入式ARM64环境
工欲善其事,必先利其器.操作系统崩溃是高级Linux运维工程师很头疼的事情,但也不要害怕,前辈们已经给我们磨了好多把刀,其中有一把叫做Kdump.目前在主流的Linux发行版如Ubuntu.Cento ...
- 嵌入式linux python移植过程_嵌入式linux项目开发(一)——BOA移植
嵌入式linux项目开发(一)--BOA移植 项目目标:使用BOA.CGIC.SQLite搭建嵌入式web服务器 一.嵌入式web服务器BOA简介 在嵌入式设备的管理与交互中,基于Web方式的应用成为 ...
- linux嵌入式移植培训,达内嵌入式培训大讲堂之Linux系统移植
移植一个基本的必要的linux系统(包含存储设备,输入输出设备驱动)移植到板子里,其他的一些驱动不能移植进去,对设备的要求不高,接下来,达内嵌入式培训大讲堂将和大家讨论"Linux系统移植& ...
- 嵌入式linux操作系统的移植 实验报告,嵌入式linux系统移植试题
[A] 内核不支持当前处理器 [B] 内核不支持当前开发平台 [C ] 内核获取不到bootloader传递来的参数 [D ] 内核初始化终端出现错误 18. 内核启动过程中,如果终端出现" ...
- goaheadlinux移植_goahead(嵌入式Web服务器)之交叉编译、移植篇
GoAhead简介: GoAhead是一个开源(商业许可).简单.轻巧.功能强大.可以在多个平台运行的嵌入式Web Server. GoAhead主要特性: 1 很小的内存消耗 2 支持认证功能Dig ...
- 移植opencv到嵌入式arm详细过程
你好!这里是风筝的博客, 欢迎和我一起交流. 看了好几篇一直opencv的文章,都是几年前的,而且版本比较旧,对着弄会发现有的地方是和现在是有改动的.所以,2017年末,记录了此次移植过程,移植版本比 ...
最新文章
- LINUNX下PHP下载中文文件名代码
- 富文本编辑_博客的后台富文本编辑和阅读计数
- 一文带你了解 MySQL 中的各种锁机制!
- 比特币与企业级区块链的区别
- 快速排序,冒泡排序时间复杂度推导
- GNU C 中的零长数组
- 自考计算机科学与技术本科毕业论文选题,自考计算机科学与技术专业(本)毕业论文写作指导...
- js学习总结----柯里化函数
- servlet到mysql_在servlet中搜索代码到mysql?
- App在后台运行时如何保存数据到sqlite数据库
- Vue图片放大镜插件
- “数据中台”在安防行业的应用与发展
- VC6连接Oracle10g
- R forcast auto arima用法
- 2022 ICPC Gran Premio de Mexico 2da Fecha Final standings - K. Krystalova‘s Trivial Problem
- 牛客网 D-图图(广搜)
- JSD-2204-RESTful-Service-SpringMVC-Day06
- 获取指定年份的工作日和节假日后导入Excel
- 石墨烯的加入,新量子装置使人类离第二次量子革命真正又近一步
- java.lang.ClassNotFoundException:org.glassfish.gmbal.ManagedObjectManager