应用软件包的生成方法、装置、计算机设备及存储介质与流程

    专利查询2022-07-07  213



    1.本发明涉及计算机技术领域,尤其涉及一种应用软件包的生成方法、装置、计算机设备及存储介质。


    背景技术:

    2.应用软件包是指预先编制好的,能完成一定功能的成套软件系统。在应用软件包的开发过程中,很多编译工具均支持跨平台编译,即可以将用户编写的源代码编译成能够在与编译平台相同或不同的平台中运行的应用软件包。
    3.基于此,用户在进行应用软件包的部署时,需要将源代码编译后的程序文件、程序文件所用的数据文档等有关文档资料从编译工具的输出目录中收集起来,存入目标文件夹中,从而形成与软件部署平台对应的应用软件包。
    4.现有的应用软件包的生成方法多依赖于人工拷贝,效率低且错误率高。


    技术实现要素:

    5.本发明提供一种应用软件包的生成方法、装置、计算机设备及存储介质,解决了应用软件包的生成效率低且错误率高的问题。
    6.为达到上述目的,本发明采用如下技术方案:
    7.第一方面,本发明提供一种应用软件包的生成方法,该方法包括:
    8.根据预设的软件部署平台,确定编译工具的输出目录;
    9.通过编译工具编译代码,在输出目录存储多个目标程序;
    10.编译代码后获取多个标签信息,一个标签信息用于指示多个目标程序中的一个目标程序;
    11.根据每个标签信息,确定每个标签信息指示的目标程序在编译工具的工作空间中的相对路径;
    12.根据编译工具的工作空间的绝对路径,以及每个标签信息对应的相对路径,确定每个标签信息对应的绝对路径;
    13.根据每个标签信息对应的绝对路径,将多个目标程序拷贝到目标文件夹;
    14.根据目标文件夹生成应用软件包。
    15.在一种可能的实现方式中,应用软件包的生成方法还包括:
    16.根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的动态链接库文件的文件名和软链接路径,得到多个动态链接库文件的文件名和软链接路径;根据多个动态链接库文件的文件名和软链接路径,将多个动态链接库文件拷贝到目标文件夹。
    17.在一种可能的实现方式中,根据多个动态链接库文件的文件名和软链接路径,将多个动态链接库文件拷贝到目标文件夹,包括:根据每个动态链接库文件的软链接路径确定每个动态链接库文件的真实路径;将多个动态链接库文件,按照软链接路径的字母先后
    顺序进行排序;将排序后的首个动态链接库文件拷贝到目标文件夹;在第二库文件的文件名与第一库文件的文件名不同的情况下,或,在第二库文件的文件名与第一库文件的文件名相同,第二库文件的真实路径与第一库文件的真实路径不同的情况下,将第二库文件拷贝到目标文件夹;第一库文件与第二库文件为排序后相邻的两个动态链接库文件,第二库文件位于第一库文件之后。
    18.在一种可能的实现方式中,应用软件包的生成方法还包括:利用编译工具的查询功能,根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的数据文件的文件名和软链接路径,得到多个数据文件的文件名和软链接路径;根据多个数据文件的文件名和软链接路径,将多个数据文件拷贝到目标文件夹。
    19.在一种可能的实现方式中,数据文件包括源文件型的多个第一文件和文件组型的多个第二文件,利用编译工具的查询功能,根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的数据文件的文件名和软链接路径,包括:根据每个标签信息对应的绝对路径,通过依赖查询方式确定每个标签信息指示的目标程序对应的每个第一文件的文件名和软链接路径,以及每个第二文件的文件名和软链接路径;根据每个第二文件的文件名和软链接路径,通过依赖查询方式在多个第二文件中确定目标文件的文件名和软链接路径。
    20.第二方面,本发明提供一种应用软件包的生成装置,包括:
    21.第一确定模块,用于根据预设的软件部署平台,确定编译工具的输出目录;
    22.存储模块,用于通过编译工具编译代码,在输出目录存储多个目标程序;
    23.获取模块,用于编译代码后获取多个标签信息,一个标签信息用于指示多个目标程序中的一个目标程序;
    24.第二确定模块,用于根据每个标签信息,确定每个标签信息指示的目标程序在编译工具的工作空间中的相对路径;
    25.第三确定模块,用于根据编译工具的工作空间的绝对路径,以及每个标签信息对应的相对路径,确定每个标签信息对应的绝对路径;
    26.拷贝模块,用于根据每个标签信息对应的绝对路径,将多个目标程序拷贝到目标文件夹;
    27.生成模块,用于根据目标文件夹生成应用软件包。
    28.在一种可能的实现方式中,第三定模块还用于,根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的动态链接库文件的文件名和软链接路径,得到多个动态链接库文件的文件名和软链接路径;拷贝模块还用于,根据多个动态链接库文件的文件名和软链接路径,将多个动态链接库文件拷贝到目标文件夹。
    29.在一种可能的实现方式中,拷贝模块具体用于:根据每个动态链接库文件的软链接路径确定每个动态链接库文件的真实路径;将多个动态链接库文件,按照软链接路径的字母先后顺序进行排序;将排序后的首个动态链接库文件拷贝到目标文件夹;在第二库文件的文件名与第一库文件的文件名不同的情况下,或,在第二库文件的文件名与第一库文件的文件名相同,第二库文件的真实路径与第一库文件的真实路径不同的情况下,将第二库文件拷贝到目标文件夹;第一库文件与第二库文件为排序后相邻的两个动态链接库文件,第二库文件位于第一库文件之后。
    30.在一种可能的实现方式中,第三确定模块还用于,利用编译工具的查询功能,根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的数据文件的文件名和软链接路径,得到多个数据文件的文件名和软链接路径;拷贝模块还用于,根据多个数据文件的文件名和软链接路径,将多个数据文件拷贝到目标文件夹。
    31.在一种可能的实现方式中,数据文件包括源文件型的第一文件和文件组型的多个第二文件,第三确定模块还用于:根据每个标签信息对应的绝对路径,通过依赖查询方式确定每个标签信息指示的目标程序对应的每个第一文件的文件名和软链接路径,以及每个第二文件的文件名和软链接路径;根据每个第二文件的文件名和软链接路径,通过依赖查询方式在多个第二文件中确定目标文件的文件名和软链接路径。
    32.第三方面,本发明提供一种计算机设备,该计算机设备包括:处理器和存储器。存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行计算机指令时,计算机设备执行如第一方面及其任一种可能的实现方式的应用软件包的生成方法。
    33.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行如第一方面或第一方面的可能的实现方式中任意一项的应用软件包的生成方法。
    34.第五方面,本发明提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行如第一方面及其任一种可能的实现方式的应用软件包的生成方法方法。
    35.本发明实施例提供的应用软件包的生成方法,计算机设备根据预设的软件部署平台,确定编译工具的输出目录,通过编译工具编译代码,在输出目录存储多个目标程序,并在编译代码后获取多个标签信息,其中,一个标签信息用于指示多个目标程序中的一个目标程序,根据每个标签信息,确定每个标签信息指示的目标程序在编译工具的工作空间中的相对路径,根据编译工具的工作空间的绝对路径,以及每个标签信息对应的相对路径,确定每个标签信息对应的绝对路径,并根据每个标签信息对应的绝对路径,将多个目标程序拷贝到目标文件夹,最后根据目标文件夹生成应用软件包。本发明实施例中,计算机设备基于编译工具的跨平台编译功能,根据预设的软件部署平台,将编译工具编译代码后输出的多个目标程序自动拷贝打包成对应的可跨平台部署的应用软件包,提高了应用软件包的生成效率且降低了错误率。
    附图说明
    36.图1为本发明实施例提供的一种应用软件包的生成方法的应用场景示意图;
    37.图2为本发明实施例提供的一种应用软件包的生成方法的流程图之一;
    38.图3为本发明实施例提供的一种应用软件包的生成方法的流程图之二;
    39.图4为本发明实施例提供的一种应用软件包的生成方法的流程图之三;
    40.图5为本发明实施例提供的一种应用软件包的生成方法的流程图之四;
    41.图6为本发明实施例提供的一种应用软件包的生成方法的流程图之五;
    42.图7为本发明实施例提供的一种应用软件包的生成装置的组成示意图。
    具体实施方式
    43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
    44.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,“基于”或“根据”的使用意味着开放和包容性,因为“基于”或“根据”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。
    45.为了解决应用软件包的生成效率低且错误率高的问题,本发明实施例提供了一种应用软件包的生成方法、装置、计算机设备及存储介质,计算机设备根据预设的软件部署平台,确定编译工具的输出目录,通过编译工具编译代码,在输出目录存储多个目标程序,并在编译代码后获取多个标签信息,其中,一个标签信息用于指示多个目标程序中的一个目标程序,根据每个标签信息,确定每个标签信息指示的目标程序在编译工具的工作空间中的相对路径,根据编译工具的工作空间的绝对路径,以及每个标签信息对应的相对路径,确定每个标签信息对应的绝对路径,并根据每个标签信息对应的绝对路径,将多个目标程序拷贝到目标文件夹,最后根据目标文件夹生成应用软件包。
    46.这样,计算机设备基于编译工具的跨平台编译功能,根据预设的软件部署平台,将编译工具编译代码后输出的多个目标程序自动拷贝打包成对应的可跨平台部署的应用软件包,从而提高了应用软件包的生成效率且降低了错误率。
    47.本发明实施例提供的应用软件包的生成方法的执行主体为计算机设备。该计算机设备可以是终端设备,例如,可运行编译工具的平板电脑或笔记本电脑等,也可以是服务器,还可以是服务器集群,本发明实施例不做限定。示例性的,图1为本发明实施例提供的一种应用软件包的生成方法的应用场景示意图,以图1中的计算机设备10为例,计算机设备10中安装有编译工具,编译工具用于将用户编写的源代码,编译成为计算机设备可以识别的二进制可执行文件,即目标程序。计算机设备10还可以根据编译后的每个目标程序对应的每个标签信息,确定多个目标程序的绝对路径,从而将多个目标程序拷贝至目标文件夹中,并生成应用软件包。以下以计算机设备为例对本发明实施例中的应用软件包的生成方法进行介绍。
    48.图2为本发明实施例提供的一种应用软件包的生成方法的流程图。如图2所示,应用软件包的生成方法可以包括以下步骤s201-步骤s207。
    49.s201、计算机设备根据预设的软件部署平台,确定编译工具的输出目录。
    50.编译工具可以是一种编译程序,用于将用户编写的源代码,编译成为计算机设备可以识别的二进制可执行文件,即目标程序。编译工具可以支持跨平台编译,即目标程序的编译平台不同于目标程序运行平台,示例性地,以常见的跨平台编译工具bazel为例,bazel可以支持多种语言混编的项目,例如java,c ,android,ios,go和各种其他语言,并且可以根据不同的预设软件部署平台,编译出不同的目标程序,例如,bazel可以在x86_64平台中
    编译出可以在x86_64平台中运行的目标程序,还可以在x86_64平台中编译出可以在aarch64平台中运行的目标程序。
    51.可以理解的是,预设的软件部署平台不同,编译工具编译出的目标程序的输出目录也不同。示例性的,bazel可以根据不同的编译选项来选择不同的输出目录,例如,若编译选项中的cpu设置为x86_64,则输出目录可以为bazel-out/x86_64-py2-opt/,若编译选项中的cpu设置为aarch64,则输出目录可以为bazel-out/aarch64-py2-opt/。
    52.具体地,计算机设备可以根据预设的软件部署平台,确定编译工具的输出目录。
    53.s202、计算机设备通过编译工具编译代码,在输出目录存储多个目标程序。
    54.具体地,终端设备可以通过编译工具编译代码,得到多个目标程序,并根据预设的软件部署平台,将编译出的多个目标程序存储在与预设的软件部署平台对应的输出目录中。
    55.s203、计算机设备编译代码后获取多个标签信息,一个标签信息用于指示多个目标程序中的一个目标程序。
    56.可以理解的是,在编译工具编译代码后,每个目标程序都会产生唯一的标签,即标签信息,该标签信息与目标程序对应的输出目录对应。例如,在bazel中,一个目标程序的标签信息可以为//a/b:c。
    57.具体地,计算机设备可以编译代码后获取每个目标程序对应的标签信息,得到多个标签信息。
    58.s204、计算机设备根据每个标签信息,确定每个标签信息指示的目标程序在编译工具的工作空间中的相对路径。
    59.可以理解的是,工作空间是编译工具的文件系统,包含了源文件、符号链接以及输出目录等,每个标签信息与其指示的目标程序在工作空间中的相对路径一一对应。
    60.计算机设备可以根据每个标签信息,确定每个标签信息指示的目标程序在编译工具的工作空间中的相对路径。示例性的,在bazel中,标签信息为//a/b:c的目标程序的相对路径可以是当前工作空间下的bazel-bin/a/b/c。
    61.s205、计算机设备根据编译工具的工作空间的绝对路径,以及每个标签信息对应的相对路径,确定每个标签信息对应的绝对路径。
    62.具体地,计算机设备可以将编译工具的工作空间的绝对路径,和每个标签信息对应的相对路径进行拼接,从而得到每个标签信息对应的绝对路径。
    63.s206、计算机设备根据每个标签信息对应的绝对路径,将多个目标程序拷贝到目标文件夹。
    64.具体地,计算机设备可以根据每个标签信息对应的绝对路径,确定每个目标程序的存储位置,并依据每个目标程序的存储位置将每个目标程序拷贝到同一目标文件夹中。
    65.s207、计算机设备根据目标文件夹生成应用软件包。
    66.可选的,计算机设备可以直接将目标文件夹确定为应用软件包,也可以将目标文件夹压缩后得到的压缩包确定为应用软件包,此处对于应用软件包的生成方式不做限定。
    67.本实施例中,计算机设备根据预设的软件部署平台,确定编译工具的输出目录,通过编译工具编译代码,在输出目录存储多个目标程序,并在编译代码后获取多个标签信息,其中,一个标签信息用于指示多个目标程序中的一个目标程序,根据每个标签信息,确定每
    个标签信息指示的目标程序在编译工具的工作空间中的相对路径,根据编译工具的工作空间的绝对路径,以及每个标签信息对应的相对路径,确定每个标签信息对应的绝对路径,并根据每个标签信息对应的绝对路径,将多个目标程序拷贝到目标文件夹,最后根据目标文件夹生成应用软件包。本发明实施例中,计算机设备基于编译工具的跨平台编译功能,根据预设的软件部署平台,将编译工具编译代码后输出的多个目标程序自动拷贝打包成对应的可跨平台部署的应用软件包,提高了应用软件包的生成效率且降低了错误率。
    68.可选的,在上述实施例的基础上,结合图2,如图3所示,应用软件包的生成方法还包括:
    69.s301、计算机设备根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的动态链接库文件的文件名和软链接路径,得到多个动态链接库文件的文件名和软链接路径。
    70.目标程序在运行时可能需要动态链接库文件,基于此,计算机设备可以在得到每个目标程序的绝对路径后,将所有目标程序的绝对路径作为参数一次性地传给与预设的软件部署平台对应的程序指令,通过该程序指令分析出每个目标程序所需要的动态链接库文件的文件名和软链接路径,从而得到多个动态链接库文件的文件名和软链接路径。
    71.可以理解的是,若预设的软件部署平台不同,则程序指令的类型也不同。
    72.示例性地,在编译平台是x86_64平台的情况下,若预设的软件部署平台为x86_64平台,则程序指令可以为ldd命令,若预设的软件部署平台为aarch64平台,则程序指令可以为readelf命令,计算机设备可以通过readelf命令获取shared library的信息来确定目标程序所需要的动态链接库。
    73.s302、计算机设备根据多个动态链接库文件的文件名和软链接路径,将多个动态链接库文件拷贝到目标文件夹。
    74.具体地,计算机设备可以根据多个动态链接库文件的文件名和软链接路径,确定每个动态链接库文件的存储位置,并依据每个动态链接库文件的存储位置将每个动态链接库文件拷贝到目标文件夹中。
    75.本实施例中,计算机设备根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的动态链接库文件的文件名和软链接路径,得到多个动态链接库文件的文件名和软链接路径,并根据多个动态链接库文件的文件名和软链接路径,将多个动态链接库文件拷贝到目标文件夹,从而自动生成应用软件包,提高了应用软件包的生成效率且降低了错误率。
    76.可选的,在上述实施例的基础上,结合图3,如图4所示,上述步骤s302包括:
    77.s401、计算机设备根据每个动态链接库文件的软链接路径确定每个动态链接库文件的真实路径。
    78.可以理解的是,每个动态链接库文件在编译工具的输出目录中只会有唯一的一个实体,所以每个目标程序链接的自己目录下的动态链接库文件,都只是那些动态链接库文件的软链接。由于多个目标程序可能会链接到大量的相同动态链接库文件,上述实施例中根据动态链接库文件的文件名和软链接路径,将多个动态链接库文件拷贝到目标文件夹,可能会产生重复拷贝同一个动态链接库文件的情况。示例性地,在bazel中,标签信息为//a/b:c的目标程序链接到/home/dev/repo/bazel-bin/a/b/c/../../_solib_x86_64/
    lib1.so,标签信息为//b/c:d的目标程序链接到/home/dev/repo/bazel-bin/b/c/d/../../_solib_x86_64/lib1.so,而这两个目录的真实路径都指向/home/dev/repo/bazel-bin/lib1.so。因此,为了支持快速打包大量动态库文件,计算机设备在拷贝动态库文件时需要进行除重。
    79.具体的,计算机设备可以根据每个动态链接库文件的软链接路径确定每个动态链接库文件的真实路径。
    80.s402、计算机设备将多个动态链接库文件,按照软链接路径的字母先后顺序进行排序。
    81.具体的,为了进行除重,计算机设备可以将多个动态链接库文件,按照软链接路径的字母先后顺序进行排序,并在从前至后的拷贝过程中对动态链接库文件依次进行除重判断。
    82.s403、计算机设备将排序后的首个动态链接库文件拷贝到目标文件夹。
    83.可以理解的是,排序后的首个库文件为第一次拷贝的对象,因此无需做除重判断,计算机设备可以将排序后的首个库文件拷贝到目标文件夹。
    84.s404、计算机设备在第二库文件的文件名与第一库文件的文件名不同的情况下,或,在第二库文件的文件名与第一库文件的文件名相同,第二库文件的真实路径与第一库文件的真实路径不同的情况下,将第二库文件拷贝到目标文件夹;第一库文件与第二库文件为排序后相邻的两个动态链接库文件,第二库文件位于第一库文件之后。
    85.可以理解的是,除重判断可以是,判断排序后的两个相邻的第一库文件和第二库文件指向的真实路径是否相同。
    86.具体的,计算机设备可以在第二库文件的文件名与第一库文件的文件名相同,且第二库文件与第一库文件指向的真实路径相同的情况下,跳过第二库文件的拷贝。也就是说,计算机设备可以在第二库文件的文件名与第一库文件的文件名不同的情况下,或,在第二库文件的文件名与第一库文件的文件名相同,第二库文件的真实路径与第一库文件的真实路径不同的情况下,将第二库文件拷贝到目标文件夹,从而在拷贝动态链接库文件时实现除重。
    87.本实施例中计算机设备按照字母顺序对动态链接库文件的软连接路径进行排序,并在排序后的第二库文件的文件名与第一库文件的文件名不同的情况下,或,在第二库文件的文件名与第一库文件的文件名相同,第二库文件的真实路径与第一库文件的真实路径不同的情况下,将第二库文件拷贝到目标文件夹,从而在拷贝动态链接库文件时实现除重,提升了拷贝动态链接库文件的效率。
    88.可选的,在上述实施例的基础上,结合图4,如图5所示,应用软件包的生成方法还包括:
    89.s501、计算机设备利用编译工具的查询功能,根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的数据文件的文件名和软链接路径,得到多个数据文件的文件名和软链接路径。
    90.目标程序在运行时还可能依赖数据文件,基于此,计算机设备可以在得到每个目标程序的绝对路径后,利用编译工具的查询功能,采用对应的查询指令对每个目标程序进行依赖查询,从而得到多个目标程序所依赖数据文件的文件名和软链接路径。
    91.示例性地,在bazel中,计算机设备可以通过bazel自带的查询命令bazel query来查询所有目标程序所依赖的属性为data的数据文件,从而得到多个目标程序所依赖数据文件的文件名和软链接路径。
    92.s502、计算机设备根据多个数据文件的文件名和软链接路径,将多个数据文件拷贝到目标文件夹。
    93.具体地,计算机设备可以根据多个数据文件的文件名和软链接路径,确定每个数据文件的存储位置,并依据每个数据文件的存储位置将每个数据文件拷贝到目标文件夹中。
    94.本实施例中,计算机设备根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的数据文件的文件名和软链接路径,得到多个数据文件的文件名和软链接路径,并跟据多个数据文件的文件名和软链接路径,将多个数据文件拷贝到目标文件夹,从而自动生成应用软件包,提高了应用软件包的生成效率且降低了错误率。
    95.可选的,在上述实施例的基础上,结合图5,如图6所示,数据文件包括源文件型的多个第一文件和文件组型的多个第二文件,上述步骤s501包括:
    96.s601、计算机设备根据每个标签信息对应的绝对路径,通过依赖查询方式确定每个标签信息指示的目标程序对应的每个第一文件的文件名和软链接路径,以及每个第二文件的文件名和软链接路径。
    97.示例性的,在bazel中,查询出的属性为data的数据文件可以包括source类型的文件,即源文件型的第一文件,以及filegroup类型的文件,即文件组型的第二文件。
    98.具体的,计算机设备可以根据每个标签信息对应的绝对路径,通过编译工具对应的查询指令,确定每个标签信息指示的目标程序对应的每个第一文件的文件名和软链接路径,以及每个第二文件的文件名和软链接路径。
    99.示例性的,计算机设备可以通过bazel中自带的bazel query指令,查询其包含的第一文件和第二文件,继而根据bazel的输出目录将第一文件和第二文件拷贝到目标文件夹。
    100.s602、计算机设备根据每个第二文件的文件名和软链接路径,通过依赖查询方式在多个第二文件中确定目标文件的文件名和软链接路径。
    101.可以理解的是,目标文件可以是文件组型的第二文件中,被目标程序真正依赖的文件。
    102.具体的,计算机设备可以根据每个第二文件的文件名和软链接路径,通过依赖查询方式在多个第二文件中确定目标文件的文件名和软链接路径。
    103.示例性的,计算机设备可以通过bazel中自带的bazel query指令,针对filegroup类型的第二文件再次进行依赖查询,从中找到真正被依赖的部分,再拷贝到目标文件夹。
    104.本实施例中,计算机设备针对文件组型的文件进行进一步地依赖查询,是的计算机在拷贝数据文件时,筛除不被目标程序所依赖的部分,从而提高了数据文件拷贝的效率,提高了应用软件包的生成效率。
    105.上述主要从设备的角度对本发明实施例提供的方案进行了介绍。可以理解的是,设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本发明
    能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
    106.图7示出了一种可能的应用软件包的生成装置组成示意图,如图7所示,该应用软件包的生成装置可以包括第一确定模块71、存储模块72、获取模块73、第二确定模块74、第三确定模块75、拷贝模块76以及生成模块77。
    107.第一确定模块71,用于根据预设的软件部署平台,确定编译工具的输出目录。
    108.存储模块72,用于通过编译工具编译代码,在输出目录存储多个目标程序。
    109.获取模块73,用于编译代码后获取多个标签信息,一个标签信息用于指示多个目标程序中的一个目标程序。
    110.第二确定模块74,用于根据每个标签信息,确定每个标签信息指示的目标程序在编译工具的工作空间中的相对路径。
    111.第三确定模块75,用于根据编译工具的工作空间的绝对路径,以及每个标签信息对应的相对路径,确定每个标签信息对应的绝对路径。
    112.拷贝模块76,用于根据每个标签信息对应的绝对路径,将多个目标程序拷贝到目标文件夹。
    113.生成模块77,用于根据目标文件夹生成应用软件包。
    114.可选的,第三确定模块75还用于,根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的动态链接库文件的文件名和软链接路径,得到多个动态链接库文件的文件名和软链接路径;拷贝模块76还用于,根据多个动态链接库文件的文件名和软链接路径,将多个动态链接库文件拷贝到目标文件夹。
    115.可选的,拷贝模块76具体用于:根据每个动态链接库文件的软链接路径确定每个动态链接库文件的真实路径;将多个动态链接库文件,按照软链接路径的字母先后顺序进行排序;将排序后的首个动态链接库文件拷贝到目标文件夹;在第二库文件的文件名与第一库文件的文件名不同的情况下,或,在第二库文件的文件名与第一库文件的文件名相同,第二库文件的真实路径与第一库文件的真实路径不同的情况下,将第二库文件拷贝到目标文件夹;第一库文件与第二库文件为排序后相邻的两个动态链接库文件,第二库文件位于第一库文件之后。
    116.可选的,第三确定模块75还用于,利用编译工具的查询功能,根据每个标签信息对应的绝对路径,确定每个标签信息指示的目标程序对应的数据文件的文件名和软链接路径,得到多个数据文件的文件名和软链接路径;拷贝模块还用于,根据多个数据文件的文件名和软链接路径,将多个数据文件拷贝到目标文件夹。
    117.可选的,数据文件包括源文件型的多个第一文件和文件组型的多个第二文件,第三确定模块75还用于:根据每个标签信息对应的绝对路径,通过依赖查询方式确定每个标签信息指示的目标程序对应的每个第一文件的文件名和软链接路径,以及每个第二文件的文件名和软链接路径;根据每个第二文件的文件名和软链接路径,通过依赖查询方式在多个第二文件中确定目标文件的文件名和软链接路径。
    118.本发明实施例提供的应用软件包的生成装置,用于执行上述应用软件包的生成方
    法,因此可以达到与上述应用软件包的生成方法相同的效果。
    119.本发明另一实施例还提供一种计算机设备,该计算机设备包括:处理器和存储器。存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行计算机指令时,计算机设备执行如上述方法实施例所示的应用软件包的生成方法。
    120.本发明另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行上述方法实施例所示的应用软件包的生成方法。
    121.本发明另一实施例还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行上述方法实施例所示的应用软件包的生成方法。
    122.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
    转载请注明原文地址:https://tc.8miu.com/read-1166.html

    最新回复(0)