news 2026/4/18 3:20:54

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
脚本编译中怎么将/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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 1:08:41

从底层逻辑到工程实践,深入理解C语言在计算机世界中的核心地位与持久价值

在计算机语言百花齐放的今天,C语言依然占据着一个极其特殊且稳固的位置。它不像某些新兴语言那样语法华丽、生态庞大,也不以“快速开发”“低门槛”为主要卖点,但它却深深嵌入了现代计算机体系的骨骼之中。从操作系统、嵌入式设备到高性能计算…

作者头像 李华
网站建设 2026/4/18 8:44:16

【JavaSE】多线程之安全使用容器

不出意外这是多线程的最后一篇文章,主要介绍的是面试中比较常考的一个点——多线程下使用容器,我们开始吧~我们知道,在单线程环境下ArrayList、HashMap等容器使用起来非常方便,但在多线程环境中,如果多个线程同时对容器…

作者头像 李华
网站建设 2026/4/17 20:15:06

小米集团2025千万技术大奖正式颁发,自研芯片玄戒O1斩获最高奖项

1月7日,2025小米“千万技术大奖”颁奖典礼在北京小米科技园举办。经过三个月的激烈竞争与严苛评选,小米自研芯片“玄戒O1”凭借创新性、领先性和影响力等多个维度的卓越表现,荣获千万技术大奖最高奖项,小米集团创始人、董事长兼 C…

作者头像 李华