代码编译的方法和装置的制造方法

文档序号:10534574阅读:166来源:国知局
代码编译的方法和装置的制造方法
【专利摘要】本发明涉及电子设备技术领域,公开了代码编译的方法和装置,该方法包括:对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息;根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同,所述开发所用编译环境的描述信息与待编译代码相关联;当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。本发明能够保障实际编译时的编译环境与开发所用编译环境相同,进而保证实际编译出的程序能够正常运行,保证实际运行的程序与设计开发的程序两者在功能上一致。
【专利说明】
代码编译的方法和装置
技术领域
[0001]本发明涉及电子设备技术领域,具体地,涉及一种代码编译的方法和装置。
【背景技术】
[0002]代码开发按时间先后顺序可以分为三个阶段:1、编码阶段,2、编译阶段,3、运行阶段。编码阶段主要是使用程序设计语言,根据特定的文法利用程序设计语言来编码。编译阶段则是将编码阶段所编码的代码从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。编译产生的目标代码在具体的平台上运行被称为运行阶段。在编码阶段,使用程序设计语言,以及编译器所提供的库函数来创建代码,生成源程序。在编译阶段使用源程序和编译器,产生目标程序。在运行阶段使用目标程序和运行平台,通过运行目标程序获得运行结果。
[0003]上述编码阶段以及编译阶段需要在某一特定的编译环境内进行,该编译环境可提供程序运行的库。以安卓手机为例,编译环境提供方(例如,高通、谷歌等)会提供编译环境安装说明,该说明内会指明编译环境中需要的软件工具以及软件工具对应的版本。
[0004]目前,主要通过自动运行运维脚本来安装编译环境。然而,不同机器之间的编译环境可能会因为使用者的操作(例如,使用者可能将部分软件工具进行了版本升级)而导致不同。如此,使得编码阶段的开发所用编译环境与实际的编译阶段所用的编译环境之间经常会存在差异,进而导致代码开发中编译出来的程序与实际运行中所用程序间存在区别(例如,运行功能上的差异)。从而,可能导致编码阶段所编码出的程序在其开发环境上测试可用,但在实际使用中会出现运行故障。

【发明内容】

[0005]本发明的目的是提供一种代码编译的方法,该方法包括:对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息;根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同,所述开发所用编译环境的描述信息与待编译代码相关联;当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。
[0006]优选地,该方法还包括:当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更,以使得变更后的当前编译环境与开发所用编译环境相同;在变更完成后,在变更后的当前编译环境中编译待编译代码。
[0007]优选地,所述当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更包括:当当前编译环境与开发所用编译环境不相同时,输出选择是否进行当前编译环境变更的提示信息;在接收到确定当前编译环境变更的输入信息后,根据开发所用编译环境的描述信息对当前编译环境进行变更。
[0008]优选地,所述对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息包括:根据软件工具在所述开发所用编译环境的描述信息中的记录顺序在当前编译环境中进行检测,逐个确定软件工具在当前编译环境中所对应的版本信息,并按检测顺序将确定的版本信息记录到当前编译环境的描述信息中。
[0009]优选地,所述根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同包括:将当前编译环境的描述信息中的软件工具的版本信息与开发所用编译环境的描述信息中的软件工具的版本信息相比较,判断是否相同;如果相同,则判定当前编译环境与开发所用编译环境相同;否则,判定当前编译环境与开发所用编译环境不同。
[0010]优选地,所述根据开发所用编译环境的描述信息对当前编译环境进行变更包括:将当前编译环境中软件工具的版本与开发所用编译环境的软件工具的版本进行比较;当当前编译环境中软件工具的版本低于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本升级到开发所用编译环境的软件工具的版本;当当前编译环境中软件工具的版本高于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本回滚到开发所用编译环境的软件工具的版本。
[0011 ]根据本发明的一个方面,提供了一种代码编译的装置,该装置包括:检测模块,用于对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息;判断模块,用于根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同,所述开发所用编译环境的描述信息与待编译代码相关联;编译模块,用于当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。
[0012]优选地,该装置还包括:变更模块,用于当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更,以使得变更后的当前编译环境与开发所用编译环境相同;所述编译模块还用于在变更完成后,在变更后的当前编译环境中编译待编译代码。
[0013]优选地,所述变更模块用于当当前编译环境与开发所用编译环境不相同时,输出选择是否进行当前编译环境变更的提示信息;在接收到确定当前编译环境变更的输入信息后,根据开发所用编译环境的描述信息对当前编译环境进行变更。
[0014]优选地,所述检测模块用于根据软件工具在所述开发所用编译环境的描述信息中的记录顺序在当前编译环境中进行检测,逐个确定软件工具在当前编译环境中所对应的版本信息,并按检测顺序将确定的版本信息记录到当前编译环境的描述信息中。
[0015]优选地,所述判断模块用于将当前编译环境的描述信息中的软件工具的版本信息与开发所用编译环境的描述信息中的软件工具的版本信息相比较,判断是否相同;如果相同,则判定当前编译环境与开发所用编译环境相同;否则,判定当前编译环境与开发所用编译环境不同。
[0016]优选地,所述变更模块用于将当前编译环境中软件工具的版本与开发所用编译环境的软件工具的版本进行比较;当当前编译环境中软件工具的版本低于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本升级到开发所用编译环境的软件工具的版本;当当前编译环境中软件工具的版本高于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本回滚到开发所用编译环境的软件工具的版本。
[0017]通过上述技术方案,对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息;获取与待编译代码相关联的开发所用编译环境的描述信息;根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同;当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。如此,能够保障实际编译时的编译环境与开发所用编译环境相同,进而保证实际编译出的程序能够正常运行,保证实际运行的程序与设计开发的程序两者在功能上一致。
[0018]本发明的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0019]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0020]图1是根据本发明一实施方式的代码编译的方法的流程图;
[0021]图2是根据本发明一实施方式的在当前编译环境与开发所用编译环境不相同情况下进行代码编译的过程的流程图;
[0022]图3是在应用场景下根据本发明一实施方式的代码编译的方法的流程图;
[0023]图4是根据本发明一实施方式的代码编译的装置的结构图;以及
[0024]图5是根据本发明一实施方式的代码编译的装置的结构图。
【具体实施方式】
[0025]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0026]图1是根据本发明一实施方式的代码编译的方法的流程图,该方法可以用于终端设备,例如手机、平板电脑等,如图1所示,该方法可包括如下步骤。
[0027]在步骤SllO中,对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息。
[0028]举例而言,可以通过命令格式读取当前编译环境中的软件工具的版本信息,根据读取的版本信息生成当前编译环境的描述信息,例如该描述信息可以为当前编译环境的检测列表。当前编译环境的描述信息中可包括当前编译环境的软件工具和软件工具对应的版本信息。例如,在当前编译环境的检测列表的各个表项中包括当前编译环境的软件工具和该软件工具对应的版本信息。
[0029]在一实施例中,所述对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息可包括:根据软件工具在开发所用编译环境的描述信息中的记录顺序在当前编译环境中进行检测,逐个确定软件工具在当前编译环境中所对应的版本信息,并按检测顺序将确定的版本信息记录到当前编译环境的描述信息中。
[0030]举例而言,待编译代码可具有相关联的开发所用编译环境的描述信息,例如该描述信息可以为开发所用编译环境的检查列表。在开发所用编译环境的检查列表的各个表项中包括代码开发时所用的编译环境中的软件工具和该软件工具对应的版本信息。在对当前编译环境进行检测时,对于开发所用编译环境的检查列表各个表项中的软件工具在当前编译环境中逐个进行检查,确定该软件工具在当前编译环境中的版本信息,依据检查的顺序将软件工具在当前编译环境中的版本信息记录到当前编译环境的检测列表中。如此,能够使得开发所用编译环境的检查列表中软件工具的记录顺序与当前编译环境的检测列表中软件工具的记录顺序相同,进而便于后续对相同软件工具的版本进行比较。
[0031]本发明中,开发所用编译环境的描述信息和当前编译环境的描述信息可使用同一列表。例如,列表的各个表项与软件工具相对应,在各个表项中同时记录软件工具在开发所用编译环境的版本信息和软件工具在当前编译环境的版本信息。
[0032]在步骤S120中,根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同。
[0033]其中,开发所用编译环境的描述信息与待编译代码相关联。
[0034]在一实施例中,所述根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同可包括将当前编译环境的描述信息中的软件工具的版本信息与开发所用编译环境的描述信息中的软件工具的版本信息相比较,判断是否相同;如果相同,则判定当前编译环境与开发所用编译环境相同;否则,判定当前编译环境与开发所用编译环境不同。
[0035]举例而言,将检测获得的当前编译环境中的软件工具的版本信息与代码开发时所在的编译环境下的软件工具的版本信息逐个进行比较,当各个软件工具的版本都相同时,则判定当前编译环境与开发所用编译环境相同;当存在在当前编译环境中和开发所用编译环境中的版本不同的软件工具时,判定当前编译环境与开发所用编译环境不同。
[0036]在步骤S130中,当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。
[0037]如此,能够保障实际编译时的编译环境与开发所用编译环境相同,进而保证实际编译出的程序能够正常运行,保证实际运行的程序与设计开发的程序两者在功能上一致。
[0038]如图2所示,本发明中方法还可包括如下步骤。
[0039]在步骤Al中,当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更,以使得变更后的当前编译环境与开发所用编译环境相同。
[0040]在一实施例中,所述当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更可包括:当当前编译环境与开发所用编译环境不相同时,输出选择是否进行当前编译环境变更的提示信息;在接收到确定当前编译环境变更的输入信息后,根据开发所用编译环境的描述信息对当前编译环境进行变更。
[0041]举例而言,当当前编译环境与开发所用编译环境不相同时,在终端的屏幕中显示关于对当前编译环境进行变更的提示信息,例如“当前编译环境与开发时编译环境存在差异,是否变更为与开发时编译环境一致”,并提供“确认”按钮和“取消”按钮。当用户点击“确认”按钮后,终端接收到确定当前编译环境变更的输入信息,开始根据开发所用编译环境的描述信息对当前编译环境进行变更。当用户点击“取消”按钮后,终端接收到确定当前编译环境不进行变更的输入信息,可结束操作,不再编译待编译代码,并可显示待编译代码未被编译的提示信息;也可在接收到确定当前编译环境不进行变更的输入信息后,对当前编译环境中不做变更,而直接编译待编译代码。在终端处还可以在屏幕中列出与开发所用编译环境中版本不同的各个软件工具,针对每个软件工具提供选择框,用户可以针对各个软件工具进行选择,针对选择的软件工具点击“确定”按钮,则针对选择的软件工具进行变更操作。如果用户针对选择的软件工具点击“取消”按钮,则针对列出的未被选择的软件工具进行变更操作。
[0042]在一实施例中,所述根据开发所用编译环境的描述信息对当前编译环境进行变更包括:将当前编译环境中软件工具的版本与开发所用编译环境的软件工具的版本进行比较;当当前编译环境中软件工具的版本低于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本升级到开发所用编译环境的软件工具的版本;当当前编译环境中软件工具的版本高于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本回滚到开发所用编译环境的软件工具的版本。
[0043]在步骤A2中,在变更完成后,在变更后的当前编译环境中编译待编译代码。
[0044]此外,在本发明中,可以根据对当前编译环境中软件工具的变更操作,更新当前编译环境的描述信息。当要对新的待编译代码进行编译时,可先将更新后的当前编译环境的描述信息和与新的待编译代码相关联的开发所用编译环境的描述信息进行比较,判断当前编译环境与新的待编译代码的开发所用编译环境是否相同。并如前所述,根据判断结果进行对应操作。
[0045]如此,可不再对当前编译环境进行检测,直接使用更新的当前编译环境的描述信息来完成当前编译环境与开发所用编译环境是否相同的判断,提高了操作效率。
[0046]图3是在应用场景下根据本发明一实施方式的代码编译的方法的流程图。其中,在手机中进行代码编译,如图3所示,该方法可包括如下步骤。
[0047]在步骤S302中,对当前编译环境中的软件工具的版本信息进行检测,将获取的版本信息记录到当前编译环境的检测列表中。在步骤S304中,将当前编译环境的检测列表中的版本信息与开发所用编译环境的检查列表中的版本信息进行比较。在步骤S306中,判断各个软件工具的两个版本信息是否都相同,当都相同时,执行步骤S308,当存在两者不同的软件工具时,执行步骤S310。在步骤S308中,对待编译代码进行编译。在步骤S310中,显示用户界面,列出两个版本不同的软件工具,并提供是否进行变更的选择按钮。在步骤S312中,判断是否接收到确定变更的选择,当接收到时,执行步骤S314,否则,操作结束。在步骤S314中,将软件工具的两个版本进行比较,根据比较结果将当前编译环境中的软件工具进行更新或回滚,以使得软件工具在当前编译环境与开发所用编译环境中的版本相同。在步骤S314完成变更之后,执行步骤S308。
[0048]图4是根据本发明一实施方式的代码编译的装置的结构图,该装置可用于终端,例如手机、平板电脑、个人电脑(PC)等。如图4所示,一种代码编译的装置可包括如下模块。
[0049]检测模块410用于对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息;判断模块420用于根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同,所述开发所用编译环境的描述信息与待编译代码相关联;编译模块430用于当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。
[0050]在一实施例中,如图5该装置还可包括变更模块510。变更模块510用于当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更,以使得变更后的当前编译环境与开发所用编译环境相同;编译模块430还用于在变更完成后,在变更后的当前编译环境中编译待编译代码。
[0051]进一步地,变更模块510用于当当前编译环境与开发所用编译环境不相同时,输出选择是否进行当前编译环境变更的提示信息;在接收到确定当前编译环境变更的输入信息后,根据开发所用编译环境的描述信息对当前编译环境进行变更。
[0052]在一实施例中,检测模块410用于根据软件工具在所述开发所用编译环境的描述信息中的记录顺序在当前编译环境中进行检测,逐个确定软件工具在当前编译环境中所对应的版本信息,并按检测顺序将确定的版本信息记录到当前编译环境的描述信息中。
[0053]在一实施例中,判断模块420用于将当前编译环境的描述信息中的软件工具的版本信息与开发所用编译环境的描述信息中的软件工具的版本信息相比较,判断是否相同;如果相同,则判定当前编译环境与开发所用编译环境相同;否则,判定当前编译环境与开发所用编译环境不同。
[0054]在一实施例中,变更模块510用于将当前编译环境中软件工具的版本与开发所用编译环境的软件工具的版本进行比较;当当前编译环境中软件工具的版本低于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本升级到开发所用编译环境的软件工具的版本;当当前编译环境中软件工具的版本高于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本回滚到开发所用编译环境的软件工具的版本。
[0055]上述装置与前述方法相对应,【具体实施方式】可参考方法中对应详细说明,在此不再赘述。
[0056]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0057]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0058]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种代码编译的方法,该方法包括: 对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息; 根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同,所述开发所用编译环境的描述信息与待编译代码相关联; 当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。2.根据权利要求1所述的方法,其特征在于,该方法还包括: 当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更,以使得变更后的当前编译环境与开发所用编译环境相同; 在变更完成后,在变更后的当前编译环境中编译待编译代码。3.根据权利要求2所述的方法,其特征在于,所述当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更包括: 当当前编译环境与开发所用编译环境不相同时,输出选择是否进行当前编译环境变更的提不?目息; 在接收到确定当前编译环境变更的输入信息后,根据开发所用编译环境的描述信息对当前编译环境进行变更。4.根据权利要求1所述的方法,其特征在于,所述对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息包括: 根据软件工具在所述开发所用编译环境的描述信息中的记录顺序在当前编译环境中进行检测,逐个确定软件工具在当前编译环境中所对应的版本信息,并按检测顺序将确定的版本信息记录到当前编译环境的描述信息中。5.根据权利要求1所述的方法,其特征在于,所述根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同包括: 将当前编译环境的描述信息中的软件工具的版本信息与开发所用编译环境的描述信息中的软件工具的版本信息相比较,判断是否相同; 如果相同,则判定当前编译环境与开发所用编译环境相同; 否则,判定当前编译环境与开发所用编译环境不同。6.根据权利要求2所述的方法,其特征在于,所述根据开发所用编译环境的描述信息对当前编译环境进行变更包括: 将当前编译环境中软件工具的版本与开发所用编译环境的软件工具的版本进行比较;当当前编译环境中软件工具的版本低于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本升级到开发所用编译环境的软件工具的版本; 当当前编译环境中软件工具的版本高于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本回滚到开发所用编译环境的软件工具的版本。7.一种代码编译的装置,该装置包括: 检测模块,用于对待编译代码的当前编译环境进行检测,获得当前编译环境的描述信息; 判断模块,用于根据当前编译环境的描述信息和开发所用编译环境的描述信息判断当前编译环境与开发所用编译环境是否相同,所述开发所用编译环境的描述信息与待编译代码相关联; 编译模块,用于当当前编译环境与开发所用编译环境相同时,在当前编译环境中对待编译代码进行编译。8.根据权利要求7所述的装置,其特征在于,该装置还包括: 变更模块,用于当当前编译环境与开发所用编译环境不相同时,根据开发所用编译环境的描述信息对当前编译环境进行变更,以使得变更后的当前编译环境与开发所用编译环境相同; 所述编译模块还用于在变更完成后,在变更后的当前编译环境中编译待编译代码。9.根据权利要求8所述的装置,其特征在于,所述变更模块用于当当前编译环境与开发所用编译环境不相同时,输出选择是否进行当前编译环境变更的提示信息;在接收到确定当前编译环境变更的输入信息后,根据开发所用编译环境的描述信息对当前编译环境进行变更。10.根据权利要求7所述的装置,其特征在于,所述检测模块用于根据软件工具在所述开发所用编译环境的描述信息中的记录顺序在当前编译环境中进行检测,逐个确定软件工具在当前编译环境中所对应的版本信息,并按检测顺序将确定的版本信息记录到当前编译环境的描述信息中。11.根据权利要求7所述的装置,其特征在于,所述判断模块用于将当前编译环境的描述信息中的软件工具的版本信息与开发所用编译环境的描述信息中的软件工具的版本信息相比较,判断是否相同;如果相同,则判定当前编译环境与开发所用编译环境相同;否则,判定当前编译环境与开发所用编译环境不同。12.根据权利要求8所述的装置,其特征在于,所述变更模块用于将当前编译环境中软件工具的版本与开发所用编译环境的软件工具的版本进行比较;当当前编译环境中软件工具的版本低于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本升级到开发所用编译环境的软件工具的版本;当当前编译环境中软件工具的版本高于开发所用编译环境的软件工具的版本时,将当前编译环境中软件工具的版本回滚到开发所用编译环境的软件工具的版本。
【文档编号】G06F9/45GK105893104SQ201610184509
【公开日】2016年8月24日
【申请日】2016年3月28日
【发明人】罗汉彬
【申请人】乐视控股(北京)有限公司, 乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1