首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 软件包 / 一种软件编译方法、装置及电子设备和存储介质

一种软件编译方法、装置及电子设备和存储介质

阅读:91发布:2020-05-11

专利汇可以提供一种软件编译方法、装置及电子设备和存储介质专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种 软件 编译方法、装置及设备和介质,方法包括:获取目标 应用软件 的源代码,并自动对源代码进行解析,得到目标应用软件依赖的 软件包 信息;基于软件包信息自动检测当前 操作系统 是否已安装对应的目标软件包;若当前操作系统已安装目标软件包,则读取 服务器 硬件 信息,并利用服务器硬件信息自动生成编译配置文件;基于编译配置文件对源代码进行编译。本申请首先对目标应用软件的源代码进行自动解析,得到依赖的软件包信息,进而自动检测当前操作系统是否已安装目标软件包,如果是,则可自动生成编译配置文件,以便基于该编译配置文件执行编译源代码,实现软件编译步骤的标准化和自动化,能够降低人 力 和物力成本,提高了工作效率。,下面是一种软件编译方法、装置及电子设备和存储介质专利的具体信息内容。

1.一种软件编译方法,其特征在于,包括:
获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;
基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;
若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
基于所述编译配置文件对所述源代码进行编译。
2.根据权利要求1所述的软件编译方法,其特征在于,所述获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息,包括:
获取所述目标应用软件对应的源代码,并确定所述源代码的语言类型;
若所述语言类型为Java语言,则利用编译器解析所述目标应用软件的配置文件,确定所述目标应用软件依赖的软件包名称及版本。
3.根据权利要求2所述的软件编译方法,其特征在于,所述确定所述目标应用软件依赖的软件包名称及版本之后,还包括:
获取所述目标应用软件依赖的软件包所属的模名称;
基于所述模块名称和所述软件包名称及版本生成第一软件包列表;
相应的,所述基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包,包括:
自动检测当前操作系统是否已安装所述第一软件包列表中记录的目标软件包。
4.根据权利要求1所述的软件编译方法,其特征在于,所述获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息,包括:
获取所述目标应用软件对应的源代码,并确定所述源代码的语言类型;
若所述语言类型为C语言,则对编译顺序规则文件进行解析,确定需要进行编译的源文件以及所述源文件的编译顺序;
根据所述编译顺序对所述目标应用软件的头文件进行解析,确定得到所述目标应用软件依赖的第三方平台项目库。
5.根据权利要求4所述的软件编译方法,其特征在于,所述确定得到所述目标应用软件依赖的第三方平台项目库之后,还包括:
基于所述源文件的名称、所述头文件的名称以及所述第三方平台项目库的名称生成第二软件包列表;
相应的,所述基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包,包括:
自动检测当前操作系统是否已安装所述第二软件包列表中记录的目标软件包。
6.根据权利要求1所述的软件编译方法,其特征在于,所述基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包之后,还包括:
若所述当前操作系统未安装所述目标软件包,则基于所述软件包信息在操作系统镜像或前端软件包管理器中查找所述目标软件包;
若查找到所述目标软件包,则从所述操作系统镜像或所述前端软件包管理器中加载所述目标软件包,并在加载完成后进入读取服务器硬件信息的步骤。
7.根据权利要求6所述的软件编译方法,其特征在于,所述基于所述软件包信息在操作系统镜像或前端软件包管理器中查找所述目标软件包之后,还包括:
若未查找到所述目标软件包,则生成包含不存在软件包信息的第三软件包列表,以便用户对所述源代码进行检查和修改,并将修改后代码确定为所述源代码,重新进入自动对所述源代码进行解析的步骤。
8.根据权利要求1所述的软件编译方法,其特征在于,所述读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件,包括:
读取所述服务器的CPU信息和内存信息;
基于所述CPU信息和所述内存信息确定编译并行度,并根据所述编译并行度自动生成所述编译配置文件。
9.根据权利要求1至8任一项所述的软件编译方法,其特征在于,所述基于所述编译配置文件对所述源代码进行编译之后,还包括:
创建编译日志,将针对所述源代码的编译过程记录至所述编译日志中。
10.根据权利要求9所述的软件编译方法,其特征在于,所述基于所述编译配置文件对所述源代码进行编译之后,还包括:
检测所述编译过程是否成功完成;
如果否,则将相应的编译失败信息写入所述编译日志中。
11.根据权利要求9所述的软件编译方法,其特征在于,还包括:
基于对所述源代码进行解析的过程生成源代码解析日志;
基于针对所述当前操作系统是否已安装所述目标软件包的检测过程生成依赖包检查日志。
12.一种软件编译装置,其特征在于,包括:
代码解析模块,用于获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;
软件包检测模块,用于基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;
配置生成模块,用于若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
代码编译模块,用于基于所述编译配置文件对所述源代码进行编译。
13.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序
处理器,用于执行所述计算机程序时实现如权利要求1至11任一项所述软件编译方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述软件编译方法的步骤。

说明书全文

一种软件编译方法、装置及电子设备和存储介质

技术领域

[0001] 本申请涉及软件编译技术领域,更具体地说,涉及一种软件编译方法、装置及一种电子设备和一种计算机可读存储介质。

背景技术

[0002] 随着信息安全和国产化的普及,各种针对国产化的政策相继出台,要求核心单位优先使用安全可控的国产化服务器及其应用软件,由此专针对国产软硬件操作系统和应用软件应运而生。然而国产化产品种类繁多,包括CPU、服务器、数据库中间件等多种类型,而且国产化软硬件尚在不成熟的前期发展阶段,如何在国产化服务器及操作系统上编译应用软件也成为亟待解决的问题。
[0003] 因此,如何提供一种有效的应用软件编译方法是需要本领域技术人员重点关注的。发明内容
[0004] 本申请的目的在于提供一种软件编译方法、装置及一种电子设备和一种计算机可读存储介质,实现软件编译步骤的标准化和自动化,能够降低人和物力成本,提高了工作效率。
[0005] 为实现上述目的,本申请提供了一种软件编译方法,包括:
[0006] 获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;
[0007] 基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;
[0008] 若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
[0009] 基于所述编译配置文件对所述源代码进行编译。
[0010] 可选的,所述获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息,包括:
[0011] 获取所述目标应用软件对应的源代码,并确定所述源代码的语言类型;
[0012] 若所述语言类型为Java语言,则利用编译器解析所述目标应用软件的配置文件,确定所述目标应用软件依赖的软件包名称及版本。
[0013] 可选的,所述确定所述目标应用软件依赖的软件包名称及版本之后,还包括:
[0014] 获取所述目标应用软件依赖的软件包所属的模名称;
[0015] 基于所述模块名称和所述软件包名称及版本生成第一软件包列表;
[0016] 相应的,所述基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包,包括:
[0017] 自动检测当前操作系统是否已安装所述第一软件包列表中记录的目标软件包。
[0018] 可选的,所述获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息,包括:
[0019] 获取所述目标应用软件对应的源代码,并确定所述源代码的语言类型;
[0020] 若所述语言类型为C语言,则对编译顺序规则文件进行解析,确定需要进行编译的源文件以及所述源文件的编译顺序;
[0021] 根据所述编译顺序对所述目标应用软件的头文件进行解析,确定得到所述目标应用软件依赖的第三方平台项目库。
[0022] 可选的,所述确定得到所述目标应用软件依赖的第三方平台项目库之后,还包括:
[0023] 基于所述源文件的名称、所述头文件的名称以及所述第三方平台项目库的名称生成第二软件包列表;
[0024] 相应的,所述基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包,包括:
[0025] 自动检测当前操作系统是否已安装所述第二软件包列表中记录的目标软件包。
[0026] 可选的,所述基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包之后,还包括:
[0027] 若所述当前操作系统未安装所述目标软件包,则基于所述软件包信息在操作系统镜像或前端软件包管理器中查找所述目标软件包;
[0028] 若查找到所述目标软件包,则从所述操作系统镜像或所述前端软件包管理器中加载所述目标软件包,并在加载完成后进入读取服务器硬件信息的步骤。
[0029] 可选的,所述基于所述软件包信息在操作系统镜像或前端软件包管理器中查找所述目标软件包之后,还包括:
[0030] 若未查找到所述目标软件包,则生成包含不存在软件包信息的第三软件包列表,以便用户对所述源代码进行检查和修改,并将修改后代码确定为所述源代码,重新进入自动对所述源代码进行解析的步骤。
[0031] 可选的,所述读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件,包括:
[0032] 读取所述服务器的CPU信息和内存信息;
[0033] 基于所述CPU信息和所述内存信息确定编译并行度,并根据所述编译并行度自动生成所述编译配置文件。
[0034] 可选的,所述基于所述编译配置文件对所述源代码进行编译之后,还包括:
[0035] 创建编译日志,将针对所述源代码的编译过程记录至所述编译日志中。
[0036] 可选的,所述基于所述编译配置文件对所述源代码进行编译之后,还包括:
[0037] 检测所述编译过程是否成功完成;
[0038] 如果否,则将相应的编译失败信息写入所述编译日志中。
[0039] 可选的,还包括:
[0040] 基于对所述源代码进行解析的过程生成源代码解析日志;
[0041] 基于针对所述当前操作系统是否已安装所述目标软件包的检测过程生成依赖包检查日志。
[0042] 为实现上述目的,本申请提供了一种软件编译装置,包括:
[0043] 代码解析模块,用于获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;
[0044] 软件包检测模块,用于基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;
[0045] 配置生成模块,用于若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
[0046] 代码编译模块,用于基于所述编译配置文件对所述源代码进行编译。
[0047] 为实现上述目的,本申请提供了一种电子设备,包括:
[0048] 存储器,用于存储计算机程序
[0049] 处理器,用于执行所述计算机程序时实现前述公开的任一种所述软件编译方法的步骤。
[0050] 为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种所述软件编译方法的步骤。
[0051] 通过以上方案可知,本申请提供的一种软件编译方法,包括:获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;基于所述编译配置文件对所述源代码进行编译。由上可知,本申请在需要对应用软件进行编译时,将首先对目标应用软件的源代码进行自动解析,得到所依赖的软件包信息,进而自动检测当前操作系统是否已安装目标软件包,如果是,则可自动生成编译配置文件,以便基于该编译配置文件执行编译源代码的过程,实现软件编译步骤的标准化和自动化,能够降低人力和物力成本,提高了工作效率。
[0052] 本申请还公开了一种软件编译装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
[0053] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。附图说明
[0054] 为了更清楚地说明本申请实施例现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055] 图1为本申请实施例公开的一种软件编译方法的流程图
[0056] 图2为本申请实施例公开的软件编译方法的一种具体实施方式的流程图;
[0057] 图3为本申请实施例公开的软件编译方法的另外一种具体实施方式的流程图;
[0058] 图4为本申请实施例公开的另一种软件编译方法的流程图;
[0059] 图5为本申请实施例公开的一种软件编译装置的结构图;
[0060] 图6为本申请实施例公开的一种电子设备的结构图;
[0061] 图7为本申请实施例公开的另一种电子设备的结构图。

具体实施方式

[0062] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0063] 在相关技术中,国产化产品种类繁多,包括CPU、服务器、数据库、中间件等多种类型,且国产化软硬件尚在不成熟的前期发展阶段,如何在国产化服务器及操作系统上编译应用软件成为本领域技术人员亟待解决的问题。
[0064] 因此,本申请实施例公开了一种软件编译方法,实现软件编译步骤的标准化和自动化,能够降低人力和物力成本,提高了工作效率。
[0065] 参见图1所示,本申请实施例公开的一种软件编译方法包括:
[0066] S101:获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;
[0067] 本申请实施例中,首先获取目标应用软件的源代码。目标应用软件具体为待编译的应用软件,目标应用软件的源代码可以为开发人员手动编写的代码,或者可以为开源软件的源代码,获取目标应用软件源代码的方式可以通过预设接口导入源代码,也可以从网络上下载源代码。在获取到源代码之后,将自动对其进行解析,从而获取得到该目标应用软件所依赖的软件包信息。
[0068] S102:基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;
[0069] 在本步骤中,可以根据上述步骤解析得到的目标应用软件所依赖的软件包信息在当前操作系统中进行检测,以查询当前操作系统中是否已经安装该软件包信息对应的目标软件包。
[0070] 作为一种可行的实施方式,上述检测当前操作系统是否已安装软件包信息对应的目标软件包的过程可以具体包括:首先读取得到当前操作系统已安装的所有软件包,进而利用软件包信息与已安装的软件包进行一一匹配,以判定得到目标软件包是否已安装。
[0071] S103:若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
[0072] 在对当前操作系统是否已安装目标软件包进行检测之后,若检测得到当前操作系统已经安装了目标软件包,则可以读取服务器的硬件信息,进而根据服务器的硬件信息自动生成对应的编译配置文件。
[0073] 具体地,上述读取服务器硬件信息,并利用服务器硬件信息自动生成编译配置文件的过程可以包括:读取服务器的CPU信息和内存信息;基于CPU信息和内存信息确定编译并行度,并根据编译并行度自动生成编译配置文件。也即,可以通过读取服务器的硬件信息得到服务器的性能状态,从而确定服务器所能支持的编译并行度,并根据该编译并行度生成对应的编译配置文件。
[0074] S104:基于所述编译配置文件对所述源代码进行编译。
[0075] 可以理解的是,生成编译配置文件之后,本申请实施例可以基于该编译配置文件对目标应用软件的源代码进行编译。
[0076] 在一种优选的实施方式中,本申请实施例还可以预先创建编译日志,在基于编译配置文件对源代码进行编译之后,将针对源代码的编译过程记录在上述编译日志中。在具体实施中,在利用编译配置文件针对源代码进行编译之后,可以进一步检测编译过程是否成功完成,如果否,则可将该过程对应的编译失败信息写入编译日志中进行记录。
[0077] 需要指出的是,本申请实施例除了通过创建编译日志以记录源代码的编译过程之外,还可以基于对源代码进行解析的过程生成源代码解析日志,基于针对当前操作系统是否已安装目标软件包的检测过程生成依赖包检查日志,从而用户可以通过上述两种日志实现追溯和查询。
[0078] 通过以上方案可知,本申请提供的一种软件编译方法,包括:获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;基于所述编译配置文件对所述源代码进行编译。由上可知,本申请在需要对应用软件进行编译时,将首先对目标应用软件的源代码进行自动解析,得到所依赖的软件包信息,进而自动检测当前操作系统是否已安装目标软件包,如果是,则可自动生成编译配置文件,以便基于该编译配置文件执行编译源代码的过程,实现软件编译步骤的标准化和自动化,能够降低人力和物力成本,提高了工作效率。
[0079] 本申请实施例公开了软件编译方法的一种具体实施方式,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
[0080] S201:获取目标应用软件的源代码,并确定所述源代码的语言类型;
[0081] S202:若所述语言类型为Java语言,则利用编译器解析所述目标应用软件的配置文件,确定所述目标应用软件依赖的软件包名称及版本;
[0082] S203:获取所述目标应用软件依赖的软件包所属的模块名称;
[0083] S204:基于所述模块名称和所述软件包名称及版本生成第一软件包列表;
[0084] S205:自动检测当前操作系统是否已安装所述第一软件包列表中记录的目标软件包;
[0085] S206:若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
[0086] S207:基于所述编译配置文件对所述源代码进行编译。
[0087] 本申请实施例中,对源代码进行解析以确定目标应用软件依赖的软件包信息时,将首先确定源代码的语言类型。若当前源代码是利用Java语言编写的,则可以利用编译器对目标应用软件的配置文件进行解析,从而确定目标应用软件所依赖的软件包,得到该软件包的名称和版本信息。进一步地,需要确定该软件包所属的模块及其名称。在具体实施中,本申请实施例可以基于上述模块的名称、软件包的名称和版本信息生成第一软件包列表,进而基于第一软件包列表对当前操作系统进行检测,判断当前操作系统是否已经安装了第一软件包列表中记录的指定模块下的指定版本的软件包。若目标软件包已在当前操作系统安装,则可根据服务器的硬件信息自动生成编译配置文件,进而基于该编译配置文件编译源代码。
[0088] 具体地,在实际实施场景中,若需要使用Maven编译器进行软件编译,首先则需要解析pom.xml文件。其中,pom.xml文件属于项目级别的配置文件,其主要描述了目标应用软件的Maven坐标、与软件包的依赖关系、开发者需要遵循的规则、缺陷管理系统、组织和许可证明,以及其他所有的目标应用软件相关因素。通过解析pom.xml文件,可以从中确定目标应用软件编译时所依赖的软件包名称以及版本信息,进而可根据上述信息生成第一软件包列表。
[0089] 本申请实施例公开了软件编译方法的另外一种具体实施方式,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图3所示,具体的:
[0090] S301:获取目标应用软件对应的源代码,并确定所述源代码的语言类型;
[0091] S302:若所述语言类型为C语言,则对编译顺序规则文件进行解析,确定需要进行编译的源文件以及所述源文件的编译顺序;
[0092] S303:根据所述编译顺序对所述目标应用软件的头文件进行解析,确定得到所述目标应用软件依赖的第三方平台项目库;
[0093] S304:基于所述源文件的名称、所述头文件的名称以及所述第三方平台项目库的名称生成第二软件包列表;
[0094] S305:自动检测当前操作系统是否已安装所述第二软件包列表中记录的目标软件包;
[0095] S306:若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
[0096] S307:基于所述编译配置文件对所述源代码进行编译。
[0097] 本申请实施例中,对源代码进行解析以确定目标应用软件依赖的软件包信息时,将首先确定源代码的语言类型。若当前源代码是利用C语言编写的,则获取编译顺序规则文件并解析,从中确定需要进行编译的源文件以及源文件的编译顺序,并根据该编译顺序依次对目标应用软件的头文件进行解析,从而确定目标应用软件依赖的第三方平台项目库。进一步地,可以基于源文件的名称、头文件的名称以及第三方平台项目库的名称生成第二软件包列表,以便基于第二软件包列表记录的信息检测当前操作系统是否已安装目标软件包。若当前操作系统已安装目标软件包,则可自动生成编译配置文件,并基于该编译配置文件编译源代码。
[0098] 在具体的实施场景中,若需要使用Make编译器进行软件编译,首先需要解析Makefile文件,确定需要进行编译的源文件的编译顺序;第二步则根据源文件编译顺序解析对应的头文件,确定包含的第三方平台项目库,即目标应用软件所依赖的软件包;基于上述源文件的名称、头文件的名称以及第三方平台项目库的名称生第二软件包列表。
[0099] 本申请实施例公开了另一种软件编译方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图4所示,具体的:
[0100] S401:获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;
[0101] S402:基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;如果是,则进入步骤S406;如果否,则进入步骤S403;
[0102] S403:基于所述软件包信息在操作系统镜像或前端软件包管理器中查找所述目标软件包;如果否,则进入步骤S404;如果是,则进入步骤S405;
[0103] S404:生成包含不存在软件包信息的第三软件包列表,以便用户对所述源代码进行检查和修改,并将修改后代码确定为所述源代码,重新进入步骤S401;
[0104] S405:从所述操作系统镜像或所述前端软件包管理器中加载所述目标软件包,并在加载完成后进入步骤S406;
[0105] S406:读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
[0106] S407:基于所述编译配置文件对所述源代码进行编译。
[0107] 本申请实施例中,在当前操作系统中执行完成针对是否已安装目标软件包的检测过程之后,若当前操作系统中并未安装目标软件包,则进一步根据上述软件包信息在操作系统镜像或前端软件包管理器中查找目标软件包。若在操作系统镜像或前端软件包管理器中查找到目标软件包,则对其进行加载,并在加载完成后可执行读取服务器硬件信息,并自动生成编译配置文件的过程;若在操作系统镜像或前端软件包管理器中仍未查找到目标软件包,则此时可根据查找结果生成第三软件包列表,其中,第三软件包列表用于记录不存在的软件包,即未安装且未能查找到的软件包。当生成第三软件包列表之后,可以将第三软件包列表返回至用户,从而提示用户软件源代码可能存在自身错误或是在软件解析过程中发生了错误,导致存在错误的依赖包,用户可以根据源代码解析日志判断解析过程是否发生错误,或可对源代码进行检查,在解决源代码可能存在的错误之后,可以将修改后的代码重新确定为上述源代码,并再次返回对源代码进行解析,得到目标应用软件依赖的软件包信息的工作流程。
[0108] 下面对本申请实施例提供的一种软件编译装置进行介绍,下文描述的一种软件编译装置与上文描述的一种软件编译方法可以相互参照。
[0109] 参见图5所示,本申请实施例提供的一种软件编译装置包括:
[0110] 代码解析模块501,用于获取目标应用软件的源代码,并自动对所述源代码进行解析,得到所述目标应用软件依赖的软件包信息;
[0111] 软件包检测模块502,用于基于所述软件包信息自动检测当前操作系统是否已安装对应的目标软件包;
[0112] 配置生成模块503,用于若所述当前操作系统已安装所述目标软件包,则读取服务器硬件信息,并利用所述服务器硬件信息自动生成编译配置文件;
[0113] 代码编译模块504,用于基于所述编译配置文件对所述源代码进行编译。
[0114] 关于上述模块501至504的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
[0115] 本申请实施例提供的软件编译装置,在需要对应用软件进行编译时,将首先对目标应用软件的源代码进行自动解析,得到所依赖的软件包信息,进而自动检测当前操作系统是否已安装目标软件包,如果是,则可自动生成编译配置文件,以便基于该编译配置文件执行编译源代码的过程,实现软件编译步骤的标准化和自动化,能够降低人力和物力成本,提高了工作效率。
[0116] 本申请还提供了一种电子设备,参见图6所示,本申请实施例提供的一种电子设备包括:
[0117] 存储器100,用于存储计算机程序;
[0118] 处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
[0119] 具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器微控制器微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一种实施例公开的软件编译方法的步骤。
[0120] 在上述实施例的基础上,作为优选实施方式,参见图7所示,所述电子设备还包括:
[0121] 输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
[0122] 显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
[0123] 网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
[0124] 图7仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图7示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0125] 本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一种实施例公开的软件编译方法的步骤。
[0126] 本申请在需要对应用软件进行编译时,将首先对目标应用软件的源代码进行自动解析,得到所依赖的软件包信息,进而自动检测当前操作系统是否已安装目标软件包,如果是,则可自动生成编译配置文件,以便基于该编译配置文件执行编译源代码的过程,实现软件编译步骤的标准化和自动化,能够降低人力和物力成本,提高了工作效率。
[0127] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0128] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈