Yocto中一个软件包是放在bb文件里的,然后非常多的bb文件集成一个recipe(配方),然后很多的recipe又组成一个meta layer。因此,要加入一个包事实上就是在recipe以下加入一个bb(bitbake配置文件)。以下使用helloworld作为一个样例。

clone bb文件

首先是进入到一个recipe文件夹下,比如以下就是到了recipes-graphics:

$ pwd
/media/work/iMX6/Yocto/sources/meta-fsl-arm/recipes-graphics

然后clone Package配置与source文件夹的repo:

git clone https://github.com/tonyho/helloYocto.git

查看软件包是否已经在Yocto中

09:25 hexiongjun:imx6qsabresd_build $ bitbake -s | grep hello
hello :3-r0

确认在了以后,就能够运行编译等task了,假设有须要也能够deploy到rootfs中。这些操作能够參考我曾经的一些博客。

一个软件包的结构

使用tree能够看到,其有一个bb文件,然后当中另一个文件夹放着Makefile与source code:

当中的bb文件内容例如以下:

DESCRIPTION = "Hello World and Zlib test"
DEPENDS = "zlib"
SECTION = "libs"
LICENSE = "MIT"
PV = "3"
PR = "r0" SRC_URI = " \
file://helloYocto.c \
file://zlibtest.c \
file://makefile \
" LIC_FILES_CHKSUM = "file://helloYocto.c;md5=2dac018fa193620dc085aa1402e0b346"
S = "${WORKDIR}"
do_compile () {
make
} do_install () {
install -d ${D}${bindir}/
install -m 0755 ${S}/helloYocto ${D}${bindir}/
install -m 0755 ${S}/zlibtest ${D}${bindir}/
} FILES_${PN} = "${bindir}/helloYocto \
${bindir}/zlibtest "

能够看到。bb文件里指定了以下几个变量的值:

  1. SRC_URI
  2. LIC_FILES_CHKSUM:这个是checksum,假设是基于版本号管理的source,那么不须要,比如git与svn
  3. FILES_$(PN):PN是Package number,指代软件版本号使用的PV与PR结合表示,即前面bitbake -s中看到的3-r0

还有两个方法,这2个方法重载了bitbake中默认方法:

  1. do_compile
  2. do_install

这两个方法。相应了Package中的compile与install task。

Yocto tips (10): Yocto hellworld 加入一个软件包的更多相关文章

  1. Yocto tips (17): Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST

    Yocto中能够配置一个Distrbution的License.然后全部的软件包,都须要符合这个license才干够被shipped到image中,假设我们须要使用违反此license的软件包,那么就 ...

  2. Yocto tips (19): Yocto SDK Toolchian的使用

    在使用之前须要先source env,导入各种环境变量(注意将路径变更成你自己的): source ../qt5_sdk/environment-setup-cortexa9hf-vfp-neon-p ...

  3. Yocto tips (15): Yocto中的包管理器

    使用包管理器 在local.conf中使能就可以: 然后编译后就会有rpm包了: 配置文件server 能够使用ngix和apache.可是我们也能够仅仅用使用python: python -m Si ...

  4. 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

    package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayLis ...

  5. iOS 10中如何搭建一个语音转文字框架

    在2016WWDC大会上,Apple公司介绍了一个很好的语音识别的API,那就是Speech framework.事实上,这个Speech Kit就是Siri用来做语音识别的框架.如今已经有一些可用的 ...

  6. 剑指XX(游戏10) - 走正步工厂一个安静的农场游戏的代码

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2lsYW5ncXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  7. [Swift实际操作]八、实用进阶-(10)使用Swift创建一个二叉树BinaryTreeNode

    1.二叉树的特点: (1).每个节点最多有两个子树(2).左子树和右子树是有顺序的,次序不能颠倒(3).即使某节点只有一个子树,也要区分左右子树 2.二叉查找树(Binary Search Tree) ...

  8. 如何用Python在10分钟内建立一个预测模型

    转载自:https://baijia.baidu.com/s?old_id=307995 最近,我从孙子(指<孙子兵法>——译者注)那里学到了一些策略:速度和准备 “兵之情主速,乘人之不及 ...

  9. Effective C++ -----条款10: 令operator=返回一个reference to *this

    比如: Widget& operator=(const Widget& rhs) { ... return* this; } 令赋值(assignment)操作符返回一个referen ...

随机推荐

  1. idea 包的显示方式

    idea 可以通过点击Project的导航栏里的小齿轮里面有一个 Flatten packages 选项,将其勾上.就可以得到跟eclipse一样的包的显示方式. 没有设置默认是这样的 2018-06 ...

  2. 洛谷 P2747 [USACO5.4]周游加拿大Canada Tour

    P2747 [USACO5.4]周游加拿大Canada Tour 题目描述 你赢得了一场航空公司举办的比赛,奖品是一张加拿大环游机票.旅行在这家航空公司开放的最西边的城市开始,然后一直自西向东旅行,直 ...

  3. 【Codeforces】512C Fox and Dinner

    [解析]欧拉筛法,奇偶分析.建二分图,网络流 [Analysis] http://blog.csdn.net/qq574857122/article/details/43453087. 所谓的连通块就 ...

  4. Linux在中国的没落

    6月23日,Linux kernel 4.1(LTS)公布.在国际自由软件世界引起热烈反响. 反观我们国内,官方机构没有不论什么动静:在民间,Linux激情已经消失.与十几年前相比.Linux在国内已 ...

  5. Canvas中的非零围绕规则原理

    非零围绕规则:对于路径中指定范围区域,从该区域内部画一条足够长的线段.使此线段的全然落在路径范围之外. 非零围绕规则计数器:然后,将计数器初始化为0,每当这个线段与路径上的直线或曲线相交时,就改变计数 ...

  6. Constructor call must be the first statement in a constructor

    super()和this ()不能共存.否则编译时会报异常. Constructorcall must be the first statement in a constructor 换句话说就是su ...

  7. mysql---左连接、右连接、内连接之间的差别与联系

    现有两张表 第一张表为男生表,记录了男生的姓名和配偶的编号 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXlfbWFv/font/5a6L5L2T/fo ...

  8. pyspark.mllib.feature module

    Feature Extraction Feature Extraction converts vague features in the raw data into concrete numbers ...

  9. visual studio code(vscode)的使用(快捷键)

    Visual Studio Code初探 vscode 是一种可运行于 OS X,Windows 和 Linux 之上的免费跨平台编辑器: 1. 快捷键 ctrl + `:调出(对于 windows ...

  10. 5. MongoDB基本操作语句

    转自:http://blog.51cto.com/shanqiangwu/1653577 #MongoDB中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”. ...