Files
luban-lite-t3e-pro/doc/topics/sdk/advanced/lb_usage_add_new_package.html
2025-01-23 16:37:00 +08:00

347 lines
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="在 Luban SDK 中添加新应用的流程包括配置应用包、源码管理、编译和补丁制作。 如需在 Luban SDK 中添加新的应用,可执行下列步骤: 在 package 目录下添加下列必要的文件: pkg &gt; |-&gt; pkg .mk --&gt; 必须文件,用于定义包的基本信息。 |-&gt; Config.in --&gt; 可选文件,用于配置包的编译选项。 |-&gt; Config.in.host --&gt; 仅 ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="topic"/><meta name="DC.creator" content="yan.wang"/><meta name="DC.date.created" content="2024-10-31"/><meta name="DC.date.modified" content="2024-12-16"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="id"/><meta name="DC.language" content="zh-CN"/><title>添加新应用</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/advanced/lb_usage_add_new_package.dita"/><meta name="wh-out-relpath" content="topics/sdk/advanced/lb_usage_add_new_package.html"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
<body id="id" class="wh_topic_page frmBody">
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
跳转到主要内容
</a>
<header class="navbar navbar-default wh_header">
<div class="container-fluid">
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
<div class="wh_logo_and_publication_title_container">
<div class="wh_logo_and_publication_title">
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
</div>
</div>
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
</div>
</div>
</div>
</header>
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
</div>
<div class="container-fluid" id="wh_topic_container">
<div class="row">
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
<div class="wh_right_tools">
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
</div>
</nav>
</div>
<div class="wh_content_area">
<div class="row">
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-12" id="wh_topic_body">
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic topic" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/advanced/lb_usage_add_new_package.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">添加新应用</h1><div class="date inPage">16 Dec 2024</div><div style="color: gray;">
Read time: 2 minute(s)
</div><div class="- topic/body body"><p class="- topic/p p" data-ofbid="d77754e18__20250121171524">在 Luban SDK 中添加新应用的流程包括配置应用包、源码管理、编译和补丁制作。</p><p class="- topic/p p" data-ofbid="d77754e20__20250121171524">如需在 Luban SDK 中添加新的应用,可执行下列步骤:</p><ol class="- topic/ol ol" id="id__ol_nkd_3hp_fdc" data-ofbid="id__ol_nkd_3hp_fdc"><li class="- topic/li li" data-ofbid="d77754e23__20250121171524">
<div class="- topic/p p" data-ofbid="d77754e25__20250121171524"><span class="+ topic/ph sw-d/filepath ph filepath">package</span>
目录下添加下列必要的文件:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_okd_3hp_fdc" data-ofbid="id__codeblock_okd_3hp_fdc"><var class="+ topic/keyword sw-d/varname keyword varname">pkg</var>&gt;
|-&gt; <var class="+ topic/keyword sw-d/varname keyword varname">pkg</var>.mk --&gt; 必须文件,用于定义包的基本信息。
|-&gt; Config.in --&gt; 可选文件,用于配置包的编译选项。
|-&gt; Config.in.host --&gt; 仅 host 工具需要的文件</pre></div>
</li><li class="- topic/li li" data-ofbid="d77754e38__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e40__20250121171524">修改上层的 <span class="+ topic/ph sw-d/filepath ph filepath">Config.in/Config.in.host</span></p>
<div class="- topic/p p" data-ofbid="d77754e46__20250121171524">为了在 menuconfig 中看到包,需要在上层的 <span class="+ topic/ph sw-d/filepath ph filepath">Config.in</span>
<span class="+ topic/ph sw-d/filepath ph filepath">Config.in.host</span>
文件中添加对包的引用。例如:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_n5p_2gr_ldc" data-ofbid="id__codeblock_n5p_2gr_ldc">source <span class="hl-string">"package/artinchip/test-uart/Config.in"</span></pre></div>
</li><li class="- topic/li li" data-ofbid="d77754e57__20250121171524">添加应用源码和编译方案。<div class="- topic/p p" data-ofbid="d77754e59__20250121171524">SDK 支持的组件包有以下两种:<ul class="- topic/ul ul" id="id__ul_pkd_3hp_fdc" data-ofbid="id__ul_pkd_3hp_fdc"><li class="- topic/li li" data-ofbid="d77754e62__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e64__20250121171524"><a class="- topic/xref xref" href="lb_usage_add_new_package.html#id__section_fv2_nhp_fdc">编译
ArtInChip 自主开发的组件包</a>:需放在
<span class="+ topic/ph sw-d/filepath ph filepath">source/artinchip</span> 目录中。</p>
</li><li class="- topic/li li" data-ofbid="d77754e73__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e75__20250121171524"><a class="- topic/xref xref" href="lb_usage_add_new_package.html#id__section_i3p_whp_fdc">编译第三方开源代码包</a>:需下载源码包到
<span class="+ topic/ph sw-d/filepath ph filepath">dl/<var class="+ topic/keyword sw-d/varname keyword varname">pkg</var></span> 目录中。</p>
</li></ul></div></li></ol><section class="- topic/section section" id="id__section_fv2_nhp_fdc" data-ofbid="id__section_fv2_nhp_fdc"><h2 class="- topic/title title sectiontitle">编译自开发应用</h2>
<p class="- topic/p p" data-ofbid="d77754e91__20250121171524">自开发的应用一般以源码的方式存储,以 <code class="+ topic/ph pr-d/codeph ph codeph">test-uart</code> 测试源码为例:</p>
<ol class="- topic/ol ol arabic simple" id="id__ol_k31_ghp_fdc" data-ofbid="id__ol_k31_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e98__20250121171524">
<div class="- topic/p p" data-ofbid="d77754e100__20250121171524">创建目录:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_kg4_jgr_ldc" data-ofbid="id__codeblock_kg4_jgr_ldc">mkdir -p package/artinchip/test-uart</pre></div>
</li><li class="- topic/li li" data-ofbid="d77754e105__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e107__20250121171524">生成文件:</p>
<div class="- topic/p p" data-ofbid="d77754e110__20250121171524">
<ul class="- topic/ul ul" id="id__ul_dr4_kgr_ldc" data-ofbid="id__ul_dr4_kgr_ldc"><li class="- topic/li li" data-ofbid="d77754e113__20250121171524"><span class="+ topic/ph sw-d/filepath ph filepath">test-uart.mk</span>:定义应用构建内容。</li><li class="- topic/li li" data-ofbid="d77754e117__20250121171524"><span class="+ topic/ph sw-d/filepath ph filepath">Config.in</span>:配置选项。</li></ul>
</div>
</li><li class="- topic/li li" data-ofbid="d77754e123__20250121171524">
<div class="- topic/p p" data-ofbid="d77754e125__20250121171524"><span class="+ topic/ph sw-d/filepath ph filepath">package/artinchip/Config.in</span>
中添加引用。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_n5r_mgr_ldc" data-ofbid="id__codeblock_n5r_mgr_ldc">source <span class="hl-string">"package/artinchip/test-uart/Config.in"</span></pre></div>
</li><li class="- topic/li li" data-ofbid="d77754e133__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e135__20250121171524">创建目录 <span class="+ topic/ph sw-d/filepath ph filepath">source/artinchip/test-uart</span> 放置
<code class="+ topic/ph pr-d/codeph ph codeph">test-uart</code> 示例的源码和 <span class="+ topic/ph sw-d/filepath ph filepath">Makefile</span>
(<span class="+ topic/ph sw-d/filepath ph filepath">CMakeLists.txt</span>) 文件。</p>
</li><li class="- topic/li li" data-ofbid="d77754e150__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e152__20250121171524">使用编译命令 <span class="+ topic/ph sw-d/filepath ph filepath">make test-uart</span> 进行编译。</p>
</li><li class="- topic/li li" data-ofbid="d77754e158__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e160__20250121171524">如有需要,添加补丁,否则可略过。</p>
<p class="- topic/p p" data-ofbid="d77754e163__20250121171524">关于补丁的说明,可查看 <a class="- topic/xref xref" href="lb_usage_add_new_package.html#id__id5">制作补丁</a></p>
</li></ol>
</section><section class="- topic/section section" id="id__section_i3p_whp_fdc" data-ofbid="id__section_i3p_whp_fdc"><h2 class="- topic/title title sectiontitle">编译三方应用</h2>
<p class="- topic/p p" data-ofbid="d77754e176__20250121171524">对于第三方开源代码包,建议从 buildroot2 官网获得相关移植流程说明,以 <span class="+ topic/ph sw-d/filepath ph filepath">attr</span> 为例:</p>
<ol class="- topic/ol ol arabic simple" id="id__ol_l31_ghp_fdc" data-ofbid="id__ol_l31_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e183__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e185__20250121171524">在 Gitee 上查找 buildroot2 代码库,选择任意一个项目,例如
<span class="+ topic/ph sw-d/filepath ph filepath">JakeYang/buildroot</span></p>
</li><li class="- topic/li li" data-ofbid="d77754e191__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e193__20250121171524"><span class="+ topic/ph sw-d/filepath ph filepath">package</span> 中找到 <span class="+ topic/ph sw-d/filepath ph filepath">attr</span>,并将其下载到
<span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/</span> 目录中。</p>
<p class="- topic/p p" data-ofbid="d77754e205__20250121171524"><img class="- topic/image image" id="id__image_flf_s1l_sdc" src="../../../images/sdk/locate-attr-pkg-in-gitee.jpg"/></p>
<p class="- topic/p p" data-ofbid="d77754e208__20250121171524"><span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/</span>
中会生成三个文件:<span class="+ topic/ph sw-d/filepath ph filepath">patch</span> <span class="+ topic/ph sw-d/filepath ph filepath">Config.in</span>
<span class="+ topic/ph sw-d/filepath ph filepath">attr.mk</span></p>
</li><li class="- topic/li li" data-ofbid="d77754e223__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e225__20250121171524"><span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/Config.in</span> 中添加对
<span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/attr/Config.in</span> 文件的引用。</p>
</li><li class="- topic/li li" data-ofbid="d77754e234__20250121171524">
<div class="- topic/p p" data-ofbid="d77754e236__20250121171524">打开 <span class="+ topic/ph sw-d/filepath ph filepath">attr.mk</span>
文件,查找对应版本的下载地址,示例如下:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_qrn_z1t_hdc" data-ofbid="id__codeblock_qrn_z1t_hdc">ATTR_VERSION = <span class="hl-number">2.5</span>.<span class="hl-number">1</span>
ATTR_SOURCE = attr-$(ATTR_VERSION).tar.xz
ATTR_SITE = http:<em class="hl-comment">//download.savannah.gnu.org/releases/attr</em></pre></div>
<br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="id__image_o31_ghp_fdc" src="../../../images/sdk/attr-pkg.jpg" alt="attr-pkg"/></div><br/>
</li><li class="- topic/li li" data-ofbid="d77754e251__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e253__20250121171524">下载源码至 <span class="+ topic/ph sw-d/filepath ph filepath">dl/attr/</span> 目录下。</p>
</li><li class="- topic/li li" data-ofbid="d77754e259__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e261__20250121171524">执行 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">make m</span> 命令,可在 <span class="+ topic/ph sw-d/filepath ph filepath">Third-party packages</span>
中看到 <span class="+ topic/ph sw-d/filepath ph filepath">attr</span></p>
</li><li class="- topic/li li" data-ofbid="d77754e273__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e275__20250121171524">应用编译命令 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">make attr</span></p>
</li></ol>
</section><section class="- topic/section section" id="id__id5" data-ofbid="id__id5"><h2 class="- topic/title title sectiontitle">制作补丁</h2>
<p class="- topic/p p" data-ofbid="d77754e286__20250121171524">如对第三方应用进行了适配修改或者补丁修复,则可能需要制作补丁提交至 <span class="+ topic/ph sw-d/filepath ph filepath">pacakge</span> 目录。以
<span class="+ topic/ph sw-d/filepath ph filepath">ethtool</span> 为例,制作补丁的详细流程说明如下:</p>
<ol class="- topic/ol ol arabic simple" id="id__ol_p31_ghp_fdc" data-ofbid="id__ol_p31_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e296__20250121171524">
<div class="- topic/p p" data-ofbid="d77754e298__20250121171524">使用 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">make m</span> 命令打开配置界面,取消勾选下列选项,以便取消 <span class="+ topic/ph sw-d/filepath ph filepath">attr</span>
的预编译使用:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_o3b_gbl_sdc" data-ofbid="id__codeblock_o3b_gbl_sdc">[] use prebuilt binary instead of building from source</pre></div>
</li><li class="- topic/li li" data-ofbid="d77754e309__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e311__20250121171524">使用 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">make ethtool-extract</span> 生成源码,将源码压缩到
<span class="+ topic/ph sw-d/filepath ph filepath">source/third-party/ethtool-5.12</span> 目录下。</p>
</li><li class="- topic/li li" data-ofbid="d77754e320__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e322__20250121171524">使用 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">make ethtool-patch</span> 命令,添加现有补丁。</p>
</li><li class="- topic/li li" data-ofbid="d77754e328__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e330__20250121171524">进入到源码目录 <span class="+ topic/ph sw-d/filepath ph filepath">source/third-party/ethtool-5.12</span>,并建立 Git 仓库。</p>
</li><li class="- topic/li li" data-ofbid="d77754e336__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e338__20250121171524">修改代码,提交到本地 Git 仓库,并通过 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">git format-patch</span> 生成补丁。</p>
</li><li class="- topic/li li" data-ofbid="d77754e344__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e346__20250121171524">复制补丁到 <span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/attr/</span> 目录, 并排序。</p>
</li></ol>
</section><section class="- topic/section section" id="id__id6" data-ofbid="id__id6"><h2 class="- topic/title title sectiontitle">编译工具示例</h2>
<p class="- topic/p p" data-ofbid="d77754e358__20250121171524">不同的应用可能使用不同的编译工具,以下示例仅供参考:</p>
<ul class="- topic/ul ul arabic" id="id__ol_q31_ghp_fdc" data-ofbid="id__ol_q31_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e362__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e364__20250121171524">Autotools: <span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/acl</span>
</p>
</li><li class="- topic/li li" data-ofbid="d77754e370__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e372__20250121171524">CMake:</p>
<ul class="- topic/ul ul simple" id="id__ul_u31_ghp_fdc" data-ofbid="id__ul_u31_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e376__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e378__20250121171524">
<span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/lzo</span>
</p>
</li><li class="- topic/li li" data-ofbid="d77754e384__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e386__20250121171524">
<span class="+ topic/ph sw-d/filepath ph filepath">package/artinchip/*</span>
</p>
</li></ul>
</li><li class="- topic/li li" data-ofbid="d77754e393__20250121171524">
<div class="- topic/p p" data-ofbid="d77754e395__20250121171524">Golang: <span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/fscrypt</span>
<div class="- topic/note note note note_note" id="id__note_zht_1jp_fdc" data-ofbid="id__note_zht_1jp_fdc"><span class="note__title">注:</span> Golang 编写的源码包依赖文件,可以放置至
<span class="+ topic/ph sw-d/filepath ph filepath">dl/vendor</span>
目录中,编译时会优先从该目录中查找是否有所需要的依赖文件。</div></div>
</li><li class="- topic/li li" data-ofbid="d77754e406__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e408__20250121171524">Generic Makefile: <span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/bzip2</span>
</p>
</li><li class="- topic/li li" data-ofbid="d77754e414__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e416__20250121171524">Support Kconfig:</p>
<ul class="- topic/ul ul simple" id="id__ul_aj1_ghp_fdc" data-ofbid="id__ul_aj1_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e420__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e422__20250121171524">
<span class="+ topic/ph sw-d/filepath ph filepath">uboot</span>
</p>
</li><li class="- topic/li li" data-ofbid="d77754e428__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e430__20250121171524">
<span class="+ topic/ph sw-d/filepath ph filepath">linux</span>
</p>
</li><li class="- topic/li li" data-ofbid="d77754e436__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e438__20250121171524">
<span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/busybox</span>
</p>
</li></ul>
</li></ul>
</section><section class="- topic/section section" id="id__id7" data-ofbid="id__id7"><h2 class="- topic/title title sectiontitle">应用包使用规则</h2>
<ul class="- topic/ul ul" id="id__ul_yng_dwp_gdc" data-ofbid="id__ul_yng_dwp_gdc"><li class="- topic/li li" data-ofbid="d77754e452__20250121171524">
<div class="- topic/div div section" id="id__id8">
<strong class="+ topic/ph hi-d/b ph b">包的路径</strong> :当前 SDK 中,仅支持在下列路径中添加包,并且仅支持新增一级目录:<ul class="- topic/ul ul simple" id="id__ul_cj1_ghp_fdc" data-ofbid="id__ul_cj1_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e460__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e462__20250121171524">
<span class="+ topic/ph sw-d/filepath ph filepath">package/artinchip/</span>
</p>
</li><li class="- topic/li li" data-ofbid="d77754e468__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e470__20250121171524">
<span class="+ topic/ph sw-d/filepath ph filepath">package/third-party/</span>
</p>
</li></ul><p class="- topic/p p" data-ofbid="d77754e476__20250121171524">可新增一级目录,例如 <span class="+ topic/ph sw-d/filepath ph filepath">pacakge/artinchip/foo</span></p></div>
</li><li class="- topic/li li" data-ofbid="d77754e482__20250121171524">
<div class="- topic/div div section" id="id__id9">
<strong class="+ topic/ph hi-d/b ph b">包的名字</strong>:以添加一个名为 <span class="+ topic/ph sw-d/filepath ph filepath">foo</span> 的包为例<div class="table-container"><table class="- topic/table table docutils align-default frame-all" id="id__table_fj1_ghp_fdc" data-ofbid="id__table_fj1_ghp_fdc" data-cols="3"><caption></caption><colgroup><col style="width:17.301038062283737%"/><col style="width:35.813148788927336%"/><col style="width:46.88581314878893%"/></colgroup><tbody class="- topic/tbody tbody"><tr class="- topic/row row-odd"><td class="- topic/entry entry colsep-1 rowsep-1">包的目录名字</td><td class="- topic/entry entry colsep-1 rowsep-1">必须为 <span class="+ topic/ph sw-d/filepath ph filepath">foo</span>
,也可以有</td><td class="- topic/entry entry colsep-0 rowsep-1">-</td></tr><tr class="- topic/row row-even"><td class="- topic/entry entry colsep-1 rowsep-1"><span class="+ topic/ph sw-d/filepath ph filepath">Config.in</span> 中的名字</td><td class="- topic/entry entry colsep-1 rowsep-1">必须以 <span class="+ topic/ph sw-d/filepath ph filepath">BR2_PACKAGE_</span> 开头,这里为
<span class="+ topic/ph sw-d/filepath ph filepath">BR2_PACKAGE_FOO</span></td><td class="- topic/entry entry colsep-0 rowsep-0" rowspan="2">包的名字,可以包含 <span class="+ topic/ph sw-d/filepath ph filepath">-</span> 或者
<span class="+ topic/ph sw-d/filepath ph filepath">_</span> ,如果使用了中杠,则需要注意:<ul class="- topic/ul ul simple" id="id__ul_hj1_ghp_fdc" data-ofbid="id__ul_hj1_ghp_fdc"><li class="- topic/li li" data-ofbid="d77754e532__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e534__20250121171524">包目录名字继续使用中杠</p>
</li><li class="- topic/li li" data-ofbid="d77754e537__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e539__20250121171524">相关的变量名字,需要将中杠改为下划线</p>
</li></ul></td></tr><tr class="- topic/row row-odd"><td class="- topic/entry entry colsep-1 rowsep-0"><span class="+ topic/ph sw-d/filepath ph filepath">foo.mk</span> 中的变量名</td><td class="- topic/entry entry colsep-1 rowsep-0">变量名必须以 <span class="+ topic/keyword pr-d/parmname keyword parmname">FOO</span> 开头,例如
<span class="+ topic/keyword pr-d/parmname keyword parmname">FOO_INSTALL_STAGING = YES</span>
</td></tr></tbody></table></div></div>
</li><li class="- topic/li li" data-ofbid="d77754e556__20250121171524">
<div class="- topic/div div section" id="id__id10">
<strong class="+ topic/ph hi-d/b ph b">软连接的使用</strong>
<p class="- topic/p p" data-ofbid="d77754e565__20250121171524">如果在软件包的安装阶段,需要使用软连接创建目录,则需要添加参数 <span class="+ topic/keyword pr-d/parmname keyword parmname">-n</span>
,如:</p><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__pre_ij1_ghp_fdc" data-ofbid="id__pre_ij1_ghp_fdc">ln -snf source_dir_path target_name</pre><ul class="- topic/ul ul" id="id__ul_fch_vtq_3dc" data-ofbid="id__ul_fch_vtq_3dc"><li class="- topic/li li" data-ofbid="d77754e573__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e575__20250121171524"><span class="+ topic/keyword pr-d/parmname keyword parmname">ln-sf</span>
对重复创建的目标,并不会更新软连接的时间戳,导致重复执行 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">make
pkg-prebuilt</span>,无法检测到安装目录中的软连接目录的变化,导致生成的预编译
二进制包缺漏该软连接。</p>
</li><li class="- topic/li li" data-ofbid="d77754e585__20250121171524">
<p class="- topic/p p" data-ofbid="d77754e587__20250121171524"><span class="+ topic/keyword pr-d/parmname keyword parmname">-n</span>:当软连接指向目录时,将其当做一般文件对待。这样重复创建/更新链接时,
相应的时间戳也会更新。</p>
</li></ul></div>
</li></ul>
</section></div></article></main></div>
</div>
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
<div id="wh_topic_toc_content">
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#id__section_fv2_nhp_fdc" data-tocid="id__section_fv2_nhp_fdc">编译自开发应用</a></div></li><li class="section-item"><div class="section-title"><a href="#id__section_i3p_whp_fdc" data-tocid="id__section_i3p_whp_fdc">编译三方应用</a></div></li><li class="section-item"><div class="section-title"><a href="#id__id5" data-tocid="id__id5">制作补丁</a></div></li><li class="section-item"><div class="section-title"><a href="#id__id6" data-tocid="id__id6">编译工具示例</a></div></li><li class="section-item"><div class="section-title"><a href="#id__id7" data-tocid="id__id7">应用包使用规则</a></div></li></ul></div>
</div>
</nav>
</div>
</div>
</div>
<footer class="navbar navbar-default wh_footer">
<div class=" footer-container mx-auto ">
<title>footer def</title>
<style><!--
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
--></style>
<div class="webhelp.fragment.footer">
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
</div><div>
<div class="generation_time">
Update Time: 2025-01-21
</div>
</div>
</div>
</footer>
<div id="go2top" class="d-print-none">
<span class="oxy-icon oxy-icon-up"></span>
</div>
<div id="modal_img_large" class="modal">
<span class="close oxy-icon oxy-icon-remove"></span>
<div id="modal_img_container"></div>
<div id="caption"></div>
</div>
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
</body>
</html>