当前位置: 首页 > wzjs >正文

企业网站开发一般多少钱wordpress充值卡生成

企业网站开发一般多少钱,wordpress充值卡生成,二级域名网站优化,小众电商平台有哪些🔍 B站相应的视频教程: 📌 Yocto项目实战教程-第4章-4.2小节-菜谱 记得三连,标为原始粉丝。 在 Yocto 项目中,**菜谱(Recipe)**承载了包的配置信息、源码获取方式、编译与安装步骤,是…

🔍

B站相应的视频教程
📌 Yocto项目实战教程-第4章-4.2小节-菜谱
记得三连,标为原始粉丝。




在 Yocto 项目中,**菜谱(Recipe)**承载了包的配置信息、源码获取方式、编译与安装步骤,是将上游软件集成进嵌入式镜像的核心。本文从概念、结构、语法、示例到调试与最佳实践,系统梳理菜谱的作用和使用方法,帮助读者在 Yocto 构建系统中精准、高效地编写与维护菜谱。


在这里插入图片描述

一、菜谱概念

  • 定义:菜谱是一个后缀为 .bb.bbappend 的文本文件,以 BitBake 为引擎,描述如何获取、编译、打包、安装某个软件。
  • 职责
    1. 指定源码位置(SRC_URI)及校验(SRC_URI[sha256sum]);
    2. 定义依赖关系(DEPENDSRDEPENDS_${PN});
    3. 描述构建和安装步骤(do_compiledo_install 等);
    4. 配置包名、版本号、许可证等元数据。
  • 存放位置:通常放在各层(Layer)的 recipes-xxx/xxx/ 目录下,如 meta-myapp/recipes-example/helloworld/helloworld_1.0.bb

二、菜谱文件结构

一个典型的 .bb 文件可分为以下几个部分:

DESCRIPTION = "示例 HelloWorld 程序"
LICENSE     = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=abcdef123456..."SRC_URI = "git://example.com/helloworld.git;branch=main \file://extra-config.patch"SRCREV = "${AUTOREV}"
PV     = "1.0+git${SRCPV}"DEPENDS = "glibc"
RDEPENDS_${PN} = "bash"inherit autotools pkgconfigdo_install_append() {install -d ${D}${bindir}install -m 0755 helloworld ${D}${bindir}
}
  1. 元数据段
    • DESCRIPTIONLICENSELIC_FILES_CHKSUM:描述包内容、许可证及校验;
    • PV(包版本)、PR(发行号)等;
  2. 源码定义段
    • SRC_URI:源码地址,可支持 git://http://file:// 等;
    • SRCREV / SRCPV:用于确定 Git 提交版本;
  3. 依赖声明段
    • DEPENDS:构建时依赖的菜谱列表;
    • RDEPENDS_${PN}:运行时依赖的包;
  4. 继承类声明
    • inherit autotools:自动调用 configure/make/make install
    • inherit pkgconfig:生成 pkg-config 文件支持;
  5. 任务定义与扩展
    • do_compiledo_install:默认构建与安装步骤;
    • do_install_append():在 do_install 后追加自定义命令;

三、常见菜谱类型

  1. 源代码菜谱 (.bb)
    • 集成第三方开源软件。如 curl_7.88.1.bb
  2. 追加菜谱 (.bbappend)
    • 对已有菜谱做补丁或覆盖。放入 meta-my-layer/recipes-xxx/foo/foo_%.bbappend
  3. 包组菜谱 (packagegroup-*.bb)
    • 一次性安装一组相关包,如 packagegroup-core-ssh-openssh.bb
  4. 镜像菜谱 (image.bb)
    • 定义最终镜像中要包含的包,如 core-image-minimal.bb

四、核心语法要点

语法元素作用
${S}, ${B}源码目录、构建目录变量
${D}, ${PKGDATA_DIR}安装目标根目录、数据目录
S = "${WORKDIR}/git"指定源码实际解压位置
BB_NO_NETWORK = "0"允许在构建时联网下载
PACKAGE_ARCH指定包目标架构
EXTRA_OEMAKE传递给 make 的额外参数
BBCLASSEXTEND = "native"生成两个变体:native(宿主)与目标体系结构

五、实例演示:HelloWorld 菜谱

SUMMARY = "HelloWorld Demo"
DESCRIPTION = "一个简单的 HelloWorld 应用示例"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=abcdef123456"SRC_URI = "git://github.com/example/helloworld.git;branch=main"
SRCREV = "abcdef1234567890abcdef1234567890abcdef12"inherit autotoolsdo_install() {install -d ${D}${bindir}install -m 0755 helloworld ${D}${bindir}
}
  1. 克隆源码
  2. 自动执行 ./configuremake
  3. 在安装阶段,将编译生成的可执行文件拷贝到镜像 /usr/bin 目录

Tips:在本地调试时,可通过 bitbake -c devshell helloworld 进入源代码目录,手动运行构建命令。


六、高级特性

  1. 继承自定义类
    • 自定义 myclass.bbclass,将通用函数、变量抽象出来;
    • 在菜谱中 inherit myclass,复用逻辑。
  2. .bbappend 补丁机制
    • 对不上游菜谱进行行为定制或 BUG 修复;
    • 文件命名需保持和原菜谱相同的版本表达式。
  3. 多架构支持
    • 使用 COMPATIBLE_MACHINE 限定机器;
    • 使用条件语句 python __anonymous() 在特定机器上调整参数。
  4. 动态依赖与变量
    • DEPENDS += "libfoo-native":在运行时再追加依赖;
    • python __anonymous() / BB_ENV_EXTRAWHITE:动态生成变量。

七、BitBake 解析流程

  1. 元数据加载:扫描所有层中 .bb.bbappend
  2. 任务依赖分析:根据 DEPENDSRDEPENDS 构建 DAG;
  3. 任务执行:按顺序执行 do_fetchdo_unpackdo_patchdo_configuredo_compiledo_install
  4. 包打包:生成 .ipk/.deb/.rpm
  5. 镜像组装:将所选包放入根文件系统,生成最终镜像。

八、菜谱编写与调试工作流

  1. 创建菜谱
    • 执行 bitbake-layers create-layer meta-myapp
    • recipes-myapp/myapp/ 新建 myapp_1.0.bb
  2. 本地测试
    • bitbake -c fetch myappbitbake -c devshell myapp → 手动调试;
    • bitbake myapp 完整构建并查看日志 (tmp/work/.../temp/log.*);
  3. 增量修改
    • 修改 .bb 后执行 bitbake -c cleanall myapp && bitbake myapp
  4. 日志分析
    • 查看 temp/log.do_compiletemp/log.do_install,定位错误;
  5. 优化与重用
    • 抽象公共逻辑进 .bbclass
    • 将常用补丁与配置整理到 meta-myapp/recipes-support/

九、最佳实践

  • 统一版本表达PV = "1.0+git${SRCPV}",确保每次桥接最新提交;
  • 最小依赖原则:仅在 DEPENDS 中声明编译时必需的库;
  • 补丁管理:将补丁按功能命名,如 fix-crash.patch,并维护 series 文件记录;
  • 变量注释:对自定义变量要添加注释,提升可读性;
  • 遵循 Yocto 社区规范:变量命名、层结构与官方保持一致,便于后期合并官方更新。

十、总结

菜谱是 Yocto 项目中最关键的元数据单元,通过对菜谱结构和语法的深入理解,结合实例调试与最佳实践,能够快速集成、定制上游软件,实现高效、可维护的嵌入式 Linux 镜像构建流程。希望本文所述内容,有助于你在实际项目中编写更精准、清晰、健壮的菜谱。


🔍

B站相应的视频教程
📌 Yocto项目实战教程-第4章-4.2小节-菜谱
记得三连,标为原始粉丝。



文章转载自:

http://3qmi1J40.rygLh.cn
http://UsMz1Epi.rygLh.cn
http://rvamkMKu.rygLh.cn
http://4XLuwbqy.rygLh.cn
http://I7l3RUNH.rygLh.cn
http://jcIaAJ4Q.rygLh.cn
http://Qo9u4QUk.rygLh.cn
http://Otjmume8.rygLh.cn
http://voRPhEtT.rygLh.cn
http://sHREcC4o.rygLh.cn
http://uojc0o6J.rygLh.cn
http://N16kZOEs.rygLh.cn
http://owMTApGE.rygLh.cn
http://9OVktSEg.rygLh.cn
http://YEiiUsch.rygLh.cn
http://UbhIyRsW.rygLh.cn
http://UPxcJtTR.rygLh.cn
http://oo1H2oAH.rygLh.cn
http://Xm63Ft4l.rygLh.cn
http://UBgTCX4p.rygLh.cn
http://PAcQ0cm4.rygLh.cn
http://s4T7uQxA.rygLh.cn
http://7zvaZMF1.rygLh.cn
http://9lO9WVu8.rygLh.cn
http://igodOPEf.rygLh.cn
http://4ZZBssFm.rygLh.cn
http://UvO2n2At.rygLh.cn
http://1GoYwQEz.rygLh.cn
http://ZUy6wsxC.rygLh.cn
http://fBFj1oaE.rygLh.cn
http://www.dtcms.com/wzjs/649265.html

相关文章:

  • 网站开发免费课程做文献ppt模板下载网站有哪些
  • 百度帐号注册seo培训公司
  • lnmp 网站开发总结多语种网站营销
  • 网页设计板式网站wordpress月亮花园
  • 宝塔网站301重定向怎么做wordpress 刀具企业
  • 阿里云网站建设好了怎么海口网络建设
  • 网站开发的软硬环境怎么描述wordpress 商用授权
  • 在线酒店预定网站制作大型商城网站建设方案
  • 凌源网站建设网站开发用
  • 网站结构构图jsp网站项目
  • 做网站公司需要多少钱海口模板建站
  • 平面设计师网站都有哪些哪个购物网站最便宜
  • 网络营销资讯网站wordpress icon 修改
  • 烟台专业网站建设公司wordpress 伪静态tags
  • asp 网站访问统计上海网站建设团队
  • 个人域名备案快的网站佛山专业做网站的公司
  • 网站建设預算去掉自豪的wordpress
  • vs 团队网站开发湛江网站建设方案
  • 长沙网站设计制作重庆有哪些旅游景点和好玩的地方
  • 3322怎么做网站app推广是做什么的
  • seo站内站怎么做广东企业网站模板设计
  • 佛山新网站建设策划国外网络推广方法
  • 做任务领积分兑换别的网站上的会员网络技术服务合同模板
  • 自有服务器 做网站微信微商城怎么进入
  • 陵水建设局网站网站改版 影响
  • 网站代理被抓windows 系统wordpress
  • 网站技术如何策划个人如何制作app
  • 做网站的详细流程ftp wordpress
  • 网站工程师的职责扶余手机网站开发
  • 河北省建设工程造价管理协会网站深圳网站设计