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

脚本编译中怎么将/application/aima或/application/demo目录编译进去的

我先定位顶层 CMake 里选择 aima/demo 的那段逻辑(含行号),然后把它和 build_yaxon.bat 传参、Makefile 调用 cmake 的环境变量传递关系串起来解释清楚。

Read multiple configuration files
把 aima 或 demo 编进最终固件(准确说是编进 userspace 的 customer_app.elf)的入口在顶层 CMake:看 CMakeLists.txt:153-164。

1) 触发条件:必须启用 PROJECT_YAXON

只有 if(PROJECT_YAXON) 成立时,才会走“编译雅迅APP”这段逻辑(并最终链接进可执行文件):CMakeLists.txt:152-164
这个 PROJECT_YAXON 一般来自 .config(Kconfig)转成的 CMake 选项(Makefile 调 cmake 时会把 .config 里的开关转成一堆 -Dxxx=ON/OFF 传进去)。
2) 选择 aima 还是 demo:靠环境变量 build_option
在 CMakeLists.txt:154-159:

如果环境变量 build_option 非空:
add_subdirectory(./application/$ENV{build_option} YXAPP)
也就是你设置 build_option=demo 时,会进入 demo,读取它的 CMakeLists.txt,生成一个静态库目标 YXAPP(例如 CMakeLists.txt 里 add_library(YXAPP STATIC ...))。
如果环境变量 build_option 为空:
默认 add_subdirectory(./application/aima YXAPP)
对应 CMakeLists.txt 里同样定义 YXAPP 静态库。
3) “编进固件”具体是怎么完成的:链接 YXAPP 到 userspace 可执行文件
紧接着它做了链接:
target_link_libraries(${SC_USERSPACE_NAME} PRI

http://www.jsqmd.com/news/217604/

相关文章:

  • CMakeLists.txt
  • 国产AI真的很不行?四个维度告诉你真相
  • 二十三种设计模式(二十二)--策略模式
  • 二十三种设计模式(二十三)--责任链模式
  • 基于Java+SpringBoot+SSM云与糖蛋糕购物平台系统(源码+LW+调试文档+讲解等)/云与糖蛋糕平台/云与糖蛋糕系统/云与糖购物平台/云与糖购物系统/蛋糕购物平台系统/云与糖蛋糕商城
  • 从底层逻辑到工程实践,深入理解C语言在计算机世界中的核心地位与持久价值
  • C语言的性能优化实践全解析:从编译器自动优化机制到程序员手动调优思维与工程经验总结
  • 大数据时代时序数据库选型指南:为何Apache IoTDB成为物联网场景首
  • win10下安装mysql最简方案
  • 月薪35-50k*16薪,中国又一行业新兴岗位在崛起!这将是程序员未来5年最好的就业方向!
  • 二十一、pinctrl子系统
  • 【人工智能学习-AI-MIT公开课第 17.-学习:boosting 算法】
  • 解析HTML表格嵌套问题
  • 基于Java+SpringBoot+SSM博客系统(源码+LW+调试文档+讲解等)/博客平台/博客软件/个人博客系统/博客网站系统/博客管理系统
  • Java Web 社区医院信息平台系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(1):再次起航】
  • SpringBoot+Vue 师生健康信息管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 实验一 安全威胁与攻击实验
  • 智慧停车解决方案
  • 【JavaSE】多线程之安全使用容器
  • Thinkphp的基于微服务教材征订系统(编号:
  • 基于SpringBoot+Vue的IT交流和分享平台管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 【JavaSE】文件基础与File类
  • SpringBoot+Vue “衣依”服装销售平台平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • Thinkphp的农贸市场摊位 夜市摊位租赁系统设计与实现
  • Claude Code 永动机:ralph-loop 无限循环迭代插件详解(安装 / 原理 / 最佳实践 / 避坑)
  • Java SpringBoot+Vue3+MyBatis 学科竞赛管理系统源码|前后端分离+MySQL数据库
  • Thinkphp的吉他谱分享平台的设计与实现
  • Java SpringBoot+Vue3+MyBatis 墙绘产品展示交易平台系统源码|前后端分离+MySQL数据库
  • Thinkphp的基于协同过滤算法的动漫推荐系统