通过网上知道 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 到嵌入式相关推荐

  1. mysql 客户端 交叉编译_移植mysql到嵌入式ARM平台

    移植MySQL到嵌入式ARM平台 MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.ph ...

  2. 移植mysql到嵌入式ARM平台

    移植MySQL到嵌入式ARM平台    MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space ...

  3. 移植 SOEM 到嵌入式平台 STM32F767

    STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码 提供配套CUBE工程. SOEM协议栈使用1.3.1版本. 可配套NUCLEO-H743Z ...

  4. 移植Kdump至嵌入式ARM64环境

    工欲善其事,必先利其器.操作系统崩溃是高级Linux运维工程师很头疼的事情,但也不要害怕,前辈们已经给我们磨了好多把刀,其中有一把叫做Kdump.目前在主流的Linux发行版如Ubuntu.Cento ...

  5. 嵌入式linux python移植过程_嵌入式linux项目开发(一)——BOA移植

    嵌入式linux项目开发(一)--BOA移植 项目目标:使用BOA.CGIC.SQLite搭建嵌入式web服务器 一.嵌入式web服务器BOA简介 在嵌入式设备的管理与交互中,基于Web方式的应用成为 ...

  6. linux嵌入式移植培训,达内嵌入式培训大讲堂之Linux系统移植

    移植一个基本的必要的linux系统(包含存储设备,输入输出设备驱动)移植到板子里,其他的一些驱动不能移植进去,对设备的要求不高,接下来,达内嵌入式培训大讲堂将和大家讨论"Linux系统移植& ...

  7. 嵌入式linux操作系统的移植 实验报告,嵌入式linux系统移植试题

    [A] 内核不支持当前处理器 [B] 内核不支持当前开发平台 [C ] 内核获取不到bootloader传递来的参数 [D ] 内核初始化终端出现错误 18. 内核启动过程中,如果终端出现" ...

  8. goaheadlinux移植_goahead(嵌入式Web服务器)之交叉编译、移植篇

    GoAhead简介: GoAhead是一个开源(商业许可).简单.轻巧.功能强大.可以在多个平台运行的嵌入式Web Server. GoAhead主要特性: 1 很小的内存消耗 2 支持认证功能Dig ...

  9. 移植opencv到嵌入式arm详细过程

    你好!这里是风筝的博客, 欢迎和我一起交流. 看了好几篇一直opencv的文章,都是几年前的,而且版本比较旧,对着弄会发现有的地方是和现在是有改动的.所以,2017年末,记录了此次移植过程,移植版本比 ...

最新文章

  1. LINUNX下PHP下载中文文件名代码
  2. 富文本编辑_博客的后台富文本编辑和阅读计数
  3. 一文带你了解 MySQL 中的各种锁机制!
  4. 比特币与企业级区块链的区别
  5. 快速排序,冒泡排序时间复杂度推导
  6. GNU C 中的零长数组
  7. 自考计算机科学与技术本科毕业论文选题,自考计算机科学与技术专业(本)毕业论文写作指导...
  8. js学习总结----柯里化函数
  9. servlet到mysql_在servlet中搜索代码到mysql?
  10. App在后台运行时如何保存数据到sqlite数据库
  11. Vue图片放大镜插件
  12. “数据中台”在安防行业的应用与发展
  13. VC6连接Oracle10g
  14. R forcast auto arima用法
  15. 2022 ICPC Gran Premio de Mexico 2da Fecha Final standings - K. Krystalova‘s Trivial Problem
  16. 牛客网 D-图图(广搜)
  17. JSD-2204-RESTful-Service-SpringMVC-Day06
  18. 获取指定年份的工作日和节假日后导入Excel
  19. 石墨烯的加入,新量子装置使人类离第二次量子革命真正又近一步
  20. java.lang.ClassNotFoundException:org.glassfish.gmbal.ManagedObjectManager

热门文章

  1. 南京邮电大学C语言实验报告4v2(仅供参考)
  2. vm迁移虚拟机到服务器上,迁移
  3. 解决ubuntu删除文件没释放空间
  4. 计算机专业大学生社会实践,计算机专业大学生社会实践报告
  5. UltraEdit 文件标签 显示
  6. KingbaseES R6 集群通过备库clone在线添加新节点
  7. 【H5】 拖拽3事件( onmousedown ,onmousemove ,onmouseup )
  8. airpods真假鉴定!!!!!!!!!!
  9. XXX.EXE已停止工作
  10. mysql查看表的约束条件_mysql-查看表中所有约束