全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210483490.X (22)申请日 2022.05.05 (71)申请人 阿里巴巴 (中国) 有限公司 地址 310023 浙江省杭州市余杭区五常街 道文一西路969号3幢5层5 54室 (72)发明人 闫小永  (74)专利代理 机构 北京太合九思知识产权代理 有限公司 1 1610 专利代理师 刘瑞霞 (51)Int.Cl. G06F 8/41(2018.01) G06F 9/445(2018.01) (54)发明名称 程序编译和启动方法、 设备及存 储介质 (57)摘要 本申请实施例提供一种程序编译和启动方 法、 设备及存储介质。 在本申请实施例中, 针对分 离模式的待编译程序, 在待编译程序编译过程 中, 可将待编译程序依赖的分离组件的标识写入 镜像文件的动态信息段, 进而得到待编译程序的 镜像文件。 待编译程序依赖的分离组件具有独立 的镜像文件。 这样, 可实现待编译程序和其依赖 的分离组件的单独编译, 得到独立的镜像文件, 实现待编译程序与其依赖的分离组件的分离。 尤 其在对待编译程序进行编译时, 将待编译程序 依 赖的分离组件的标识写入镜像文件的动态信息 段, 而无需在待编译程序的编译过程中对分离组 件进行编译, 可降低待编译程序的编译的数据 量, 有助于提高待编译程序的编译效率。 权利要求书3页 说明书12页 附图3页 CN 114840214 A 2022.08.02 CN 114840214 A 1.一种程序编译方法, 其特 征在于, 包括: 获取待编译程序的配置文件; 从所述待编译程序的配置文件中, 获取 所述待编译程序的编译模式信息; 在所述待编译程序的编译模式信息为分离模式的情况下, 对所述待编译程序进行编 译; 在所述待编译程序编译过程中, 将所述待编译程序依赖的分离组件的标识写入镜像文 件的动态信息段, 以得到所述待编译程序的镜像文件; 其中, 所述分离组件具有独立的镜像 文件。 2.根据权利要求1所述的方法, 其特 征在于, 还 包括: 在所述待编译程序编译过程中, 针对所述待编译程序依赖的目标组件, 从所述目标组 件的配置文件中, 获取 所述目标组件的编译模式信息; 若所述目标组件的编译模式信息为分离模式, 确定所述目标组件为分离组件。 3.根据权利要求1所述的方法, 其特 征在于, 还 包括: 在编译到所述分离组件时, 对所述分离组件进行编译, 以得到所述分离组件的镜像文 件。 4.根据权利要求1所述的方法, 其特征在于, 所述待编译程序的镜像文件为可重定位文 件或可执行文件; 所述对所述待编译程序进行编译, 包括: 将所述待编译程序编译为可重 定位文件; 或者, 将所述待编译程序编译为可重定位文件; 对所述可重定位文件进行链接, 以得到可执 行文件的信息段; 对所述可执行文件的信息段进行相对地址至绝对地址的重定位, 以得到 所述待编译程序的可 执行文件。 5.根据权利要求4所述的方法, 其特征在于, 所述对所述待编译程序的各信 息段进行相 对地址至绝对地址的重 定位, 包括: 根据设定的无效段 标识, 识别所述可重 定位文件中的无效段和有效段; 根据所述无效段与 所述有效段在所述可重定位文件中的相对地址分布情况, 对所述有 效段进行相对地址 至绝对地址的重 定位, 以使所述有效段的绝对地址连续; 删除所述可重 定位文件中的无效段。 6.根据权利要求4所述的方法, 其特征在于, 所述将所述待编译程序编译为可重定位文 件, 包括: 使用ffunction ‑sections和fdata ‑sections以函数和数据分别为编译单元, 对所述待 编译程序进行编译, 以得到所述可重 定位文件; 所述对所述可重 定位文件进行链接, 包括: 使用gc‑section以函数和数据 为链接单元对所述可重定位文件进行链接, 以删除所述 可重定位文件中的无用函数和无用数据, 得到可 执行文件的信息段。 7.根据权利要求1 ‑6任一项所述的方法, 其特征在于, 所述待编译程序为嵌入式应用程 序或嵌入式操作系统的组件。 8.一种程序启动方法, 其特 征在于, 包括: 获取待启动程序的镜像文件至内存中;权 利 要 求 书 1/3 页 2 CN 114840214 A 2对所述待启动程序的镜像文件进行解析, 以得到所述待启动 程序的镜像文件包含的信 息段; 所述信息段包括动态信息段; 从所述动态信息段中, 确定所述待启动程序依赖的分离组件; 获取所述分离组件的镜像文件至所述内存中; 根据所述待启动程序的镜像文件和所述分离组件的镜像文件, 启动所述待启动程序。 9.根据权利要求8所述的方法, 其特征在于, 所述分离组件的镜像文件为可重定位文 件, 所述根据所述待启动程序的镜像文件和所述分离组件的镜像文件, 启动所述待启动程 序, 包括: 对所述分离组件的可重定位文件进行解析, 以得到所述分离组件的可重定位文件包含 的信息段; 对所述分离组件的可重定位文件包含的信 息段进行链接, 以得到所述分离组件的可执 行文件的信息段; 对所述分离组件的可执行文件的信 息段进行重定向, 以得到所述分离组件的可执行文 件; 根据所述待启动程序的镜像文件和所述分离组件的可执行文件, 启动所述待启动程 序。 10.根据权利要求9所述的方法, 其特征在于, 所述待启动程序的镜像文件为可重定位 文件, 所述根据所述待启动程序的镜像文件和所述分离组件的可执行文件, 启动所述待启 动程序, 包括: 对所述待启动程序的可重定位文件包含的信 息段进行链接, 以得到所述待启动 程序的 可执行文件的信息段; 对所述待启动程序的可执行文件的信 息段进行重定向, 以得到所述待启动 程序的可执 行文件; 根据所述待启动 程序的可执行文件和所述分离组件的可执行文件, 启动所述待启动程 序。 11.根据权利要求10所述的方法, 其特征在于, 所述待启动 程序的可重定位文件是使用 ffunction‑section和fdata ‑sections对所述待启动程序进行编译得到的; 所述对所述待启动程序的可重 定位文件 包含的信息段进行链接, 包括: 使用gc‑section以函数和数据 为链接单元对所述可重定位文件进行链接, 以删除所述 可重定位文件中的无用函数和无用数据, 以得到可 执行文件的信息段。 12.根据权利要求10所述的方法, 其特征在于, 所述对所述待启动 程序的可执行文件的 信息段进行重 定向, 包括: 根据设定的无效段 标识, 识别所述可重 定位文件中的无效段和有效段; 根据所述无效段与 所述有效段在所述可重定位文件中的相对地址分布情况, 对所述有 效段进行相对地址 至绝对地址的重 定位, 以使所述有效段的绝对地址连续; 删除所述可重 定位文件中的无效段。 13.一种计算设备, 其特征在于, 包括: 存储器和处理器; 其中, 所述存储器, 用于存储计 算机程序; 所述处理器耦合至所述存储器, 用于执行所述计算机程序以用于执行权利要求1 ‑12任权 利 要 求 书 2/3 页 3 CN 114840214 A 3

.PDF文档 专利 程序编译和启动方法、设备及存储介质

文档预览
中文文档 19 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共19页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 程序编译和启动方法、设备及存储介质 第 1 页 专利 程序编译和启动方法、设备及存储介质 第 2 页 专利 程序编译和启动方法、设备及存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:06:55上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。