技术特征:
1.一种程序编译方法,其特征在于,包括:获取待编译程序的配置文件;从所述待编译程序的配置文件中,获取所述待编译程序的编译模式信息;在所述待编译程序的编译模式信息为分离模式的情况下,对所述待编译程序进行编译;在所述待编译程序编译过程中,将所述待编译程序依赖的分离组件的标识写入镜像文件的动态信息段,以得到所述待编译程序的镜像文件;其中,所述分离组件具有独立的镜像文件。2.根据权利要求1所述的方法,其特征在于,还包括:在所述待编译程序编译过程中,针对所述待编译程序依赖的目标组件,从所述目标组件的配置文件中,获取所述目标组件的编译模式信息;若所述目标组件的编译模式信息为分离模式,确定所述目标组件为分离组件。3.根据权利要求1所述的方法,其特征在于,还包括:在编译到所述分离组件时,对所述分离组件进行编译,以得到所述分离组件的镜像文件。4.根据权利要求1所述的方法,其特征在于,所述待编译程序的镜像文件为可重定位文件或可执行文件;所述对所述待编译程序进行编译,包括:将所述待编译程序编译为可重定位文件;或者,将所述待编译程序编译为可重定位文件;对所述可重定位文件进行链接,以得到可执行文件的信息段;对所述可执行文件的信息段进行相对地址至绝对地址的重定位,以得到所述待编译程序的可执行文件。5.根据权利要求4所述的方法,其特征在于,所述对所述待编译程序的各信息段进行相对地址至绝对地址的重定位,包括:根据设定的无效段标识,识别所述可重定位文件中的无效段和有效段;根据所述无效段与所述有效段在所述可重定位文件中的相对地址分布情况,对所述有效段进行相对地址至绝对地址的重定位,以使所述有效段的绝对地址连续;删除所述可重定位文件中的无效段。6.根据权利要求4所述的方法,其特征在于,所述将所述待编译程序编译为可重定位文件,包括:使用ffunction-sections和fdata-sections以函数和数据分别为编译单元,对所述待编译程序进行编译,以得到所述可重定位文件;所述对所述可重定位文件进行链接,包括:使用gc-section以函数和数据为链接单元对所述可重定位文件进行链接,以删除所述可重定位文件中的无用函数和无用数据,得到可执行文件的信息段。7.根据权利要求1-6任一项所述的方法,其特征在于,所述待编译程序为嵌入式应用程序或嵌入式操作系统的组件。8.一种程序启动方法,其特征在于,包括:获取待启动程序的镜像文件至内存中;
对所述待启动程序的镜像文件进行解析,以得到所述待启动程序的镜像文件包含的信息段;所述信息段包括动态信息段;从所述动态信息段中,确定所述待启动程序依赖的分离组件;获取所述分离组件的镜像文件至所述内存中;根据所述待启动程序的镜像文件和所述分离组件的镜像文件,启动所述待启动程序。9.根据权利要求8所述的方法,其特征在于,所述分离组件的镜像文件为可重定位文件,所述根据所述待启动程序的镜像文件和所述分离组件的镜像文件,启动所述待启动程序,包括:对所述分离组件的可重定位文件进行解析,以得到所述分离组件的可重定位文件包含的信息段;对所述分离组件的可重定位文件包含的信息段进行链接,以得到所述分离组件的可执行文件的信息段;对所述分离组件的可执行文件的信息段进行重定向,以得到所述分离组件的可执行文件;根据所述待启动程序的镜像文件和所述分离组件的可执行文件,启动所述待启动程序。10.根据权利要求9所述的方法,其特征在于,所述待启动程序的镜像文件为可重定位文件,所述根据所述待启动程序的镜像文件和所述分离组件的可执行文件,启动所述待启动程序,包括:对所述待启动程序的可重定位文件包含的信息段进行链接,以得到所述待启动程序的可执行文件的信息段;对所述待启动程序的可执行文件的信息段进行重定向,以得到所述待启动程序的可执行文件;根据所述待启动程序的可执行文件和所述分离组件的可执行文件,启动所述待启动程序。11.根据权利要求10所述的方法,其特征在于,所述待启动程序的可重定位文件是使用ffunction-section和fdata-sections对所述待启动程序进行编译得到的;所述对所述待启动程序的可重定位文件包含的信息段进行链接,包括:使用gc-section以函数和数据为链接单元对所述可重定位文件进行链接,以删除所述可重定位文件中的无用函数和无用数据,以得到可执行文件的信息段。12.根据权利要求10所述的方法,其特征在于,所述对所述待启动程序的可执行文件的信息段进行重定向,包括:根据设定的无效段标识,识别所述可重定位文件中的无效段和有效段;根据所述无效段与所述有效段在所述可重定位文件中的相对地址分布情况,对所述有效段进行相对地址至绝对地址的重定位,以使所述有效段的绝对地址连续;删除所述可重定位文件中的无效段。13.一种计算设备,其特征在于,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行权利要求1-12任
一项所述方法中的步骤。14.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-12任一项所述方法中的步骤。
技术总结
本申请实施例提供一种程序编译和启动方法、设备及存储介质。在本申请实施例中,针对分离模式的待编译程序,在待编译程序编译过程中,可将待编译程序依赖的分离组件的标识写入镜像文件的动态信息段,进而得到待编译程序的镜像文件。待编译程序依赖的分离组件具有独立的镜像文件。这样,可实现待编译程序和其依赖的分离组件的单独编译,得到独立的镜像文件,实现待编译程序与其依赖的分离组件的分离。尤其在对待编译程序进行编译时,将待编译程序依赖的分离组件的标识写入镜像文件的动态信息段,而无需在待编译程序的编译过程中对分离组件进行编译,可降低待编译程序的编译的数据量,有助于提高待编译程序的编译效率。有助于提高待编译程序的编译效率。有助于提高待编译程序的编译效率。
技术研发人员:闫小永
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.05.05
技术公布日:2022/8/2