CN108287720A - 软件编译方法、装置、设备及存储介质 - Google Patents

软件编译方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN108287720A
CN108287720A CN201810128667.8A CN201810128667A CN108287720A CN 108287720 A CN108287720 A CN 108287720A CN 201810128667 A CN201810128667 A CN 201810128667A CN 108287720 A CN108287720 A CN 108287720A
Authority
CN
China
Prior art keywords
compiled
software
instruction
compiling
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810128667.8A
Other languages
English (en)
Other versions
CN108287720B (zh
Inventor
邓学超
张奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Skyworth RGB Electronics Co Ltd
Original Assignee
Shenzhen Skyworth RGB Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Skyworth RGB Electronics Co Ltd filed Critical Shenzhen Skyworth RGB Electronics Co Ltd
Priority to CN201810128667.8A priority Critical patent/CN108287720B/zh
Publication of CN108287720A publication Critical patent/CN108287720A/zh
Application granted granted Critical
Publication of CN108287720B publication Critical patent/CN108287720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种软件编译方法、装置、设备及存储介质,所述方法包括:构建软件编译框架;将待编译指令输入所述软件编译框架,以输出编译软件包,能够针对性的根据待编译指令进行编译,避免产生由于多方开发人员参与而导致增加出错率的问题,减少了软件开发周期,提高了软件编译效率。

Description

软件编译方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种软件编译方法、装置、设备及存储介质。
背景技术
为了提升用户使用电子产品的体验感,软件开发人员不断更新电子产品的硬件结构与软件程序,以提高电子产品品质。
由于电子产品定位的差异,经常出现软件整体基本一致,只存在少量差异,如电视画质、外设差异(屏幕等)的产品。在电视软件开发过程中,常规开发方式是基于原有软件的基础上,个模块设计师、画质调试人员、音响调试人员将新产品的相关数据配置至可用状态,再通过软件开发人员合并至***软件中进行测试和实验。
在这个过程中存在大量的非软件开发人员,无法实际的将所生成的配置信息转变成***固件。而软件开发人员基于代码开发的模式无法快速提供编译软件进行测试和实验,变相降低了开发效率。同时由于各种配置、软件模块经过多人转手进行编译,增加了出错率。上述现有的软件开发技术,不仅开发周期长,而且造成开发资源的不合理利用以及人力资源浪费严重等问题。
发明内容
本发明实施例提供一种软件编译方法、装置、设备及存储介质,能够提高软件编译效率。
第一方面,本发明实施例提供了一种软件编译方法,包括:
构建软件编译框架;
将待编译指令输入所述软件编译框架,以输出编译软件包。
第二方面,本发明实施例还提供了一种软件编译装置,包括:
框架编译模块,用于构建软件编译框架;
指令输入模块,用于将待编译指令输入所述软件编译框架,以输出编译软件包。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的软件编译方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的软件编译方法。
本发明实施例提供了一种软件编译技术方案,通过构建软件编译框架,将待编译指令输入所述软件编译框架,以输出编译软件包,能够针对性的根据待编译指令进行编译,避免产生由于多方开发人员参与而导致增加出错率的问题,减少了软件开发周期,提高了软件编译效率。
附图说明
图1是本发明实施例一中的一种软件编译方法的流程图;
图2A是本发明实施例二中的一种软件编译方法的流程图;
图2B为本发明实施例二提供的一种软件编译平台的结构示意图;
图2C为本发明实施例二提供的一种基于软件编译框架开发的快速配屏编译***流程图;
图3是本发明实施例三中的一种软件编译装置的结构示意图;
图4是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在软件开发过程中,开发人员常规使用“代码级自动化编译”工具(脚本)。这种方式具有很高的灵活性,和安全性。但是这种工具的使用往往依赖专业知识和相应平台,复杂的编译框架会拉慢很多简单的编译结构。同时在编译后的打包发布的过程大多要独立处理,开发速度变得较慢。例如,不同电视厂商对于画质规格要求不同,因此相应的代码文件会有差异。由于现有的“代码级自动化编译”工具(脚本)不能识别不同画质规格要求的非标准编译代码文件,因此,通常需要开发人员花费多个小时将非标准编译代码文件更改为标准编译代码文件,再将标准编译代码文件输入至“代码级自动化编译”工具(脚本)进行编译。又例如,现有“代码级自动化编译”工具(脚本)的编译框架复杂,包含了上百万个甚至更多的文件,当标准编译代码文件输入至上述工具后,一般会遍历编译框架内所有的文件,定位与标准编译代码文件相关的内容后才能进行编译,耗时较长,本申请实施例提供了一种软件编译方法,能够解决现有技术中软件编译耗时长的问题,具体如下:
实施例一
图1为本发明实施例一提供的一种软件编译方法的流程图,本实施例可适用于各种软件编译的情况,该方法可以由本发明实施例提供的软件编译装置来执行,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供软件编译功能的设备中,例如可以是电脑,如图1所示,具体包括:
S110、构建软件编译框架。
其中,软件编译框架可以是整个或部分***的可复用设计,可以表现为一组抽象构件及构件实例间交互的方法。在本实施例中,软件编译框架可以是整合了多种模块间的编译方法,绕过整机***中无关的代码模块,屏蔽固件生成时的具体细节以及抛开***编译的复杂结构,以逻辑关系为构建基础的框架,能够快速开发、将待编译指令处理为编译软件包的集成工具。
具体的,构建软件编译框架的过程可以由软件开发人员在网站平台、设备***或者设备所包含的应用程序上执行。构建后的软件编译框架也可以显示于网络平台、设备***或者设备所包含的应用程序,用于为开发人员提供编译功能。需要说明的是,本申请实施例不对软件编译框架的过程进行限定,不对软件编译框架的显示方式进行限定。
S120、将待编译指令输入所述软件编译框架,以输出编译软件包。
其中,待编译指令可以是构成电子产品(如电视)***中的任意部分,如驱动软件的编译以及配屏软件的编译等,用于实现电子产品正常运行的某项功能。需要说明的是,待编译指令可以用于电子产品***软件的配置,也可以用于电子产品***软件的升级。
其中,编译软件包可以是软件编译框架根据待编译指令而编译的,与其相对应的能够实现电子产品中某项功能的文件集成包。例如,本实施例中的编译软件包可以是差量OTA(Over-the-Air technology,空间下载技术)升级包、原厂固件包(factory.img)以及MD5(Message-Digest Algorithm 5,报文摘要算法)。其中,差量OTA升级包可以用于确认与调试电子产品中某项功能的参数;原厂固件包(factory.img)可以是用于在电子产品出厂时,将用于保证电子产品正常运行的文件以压缩包的形式,归档保存;MD5可以用于验证网络文件传输的完整性,防止文件被人篡改,在本实施例中,MD5例如可以是,用于确认软件生成包是否损坏。
由于软件编译框架属于底层技术,因此开发人员可以在前端输入待编译指令,或者输入与待编译指令相对应的可读性(或可视性)指令,设备通过接收到开发人员输入的指令,能够将待编译指令传输至软件编译框架,软件编译框架通过解析指令等一系列操作,能够生成与待编译指令相对应的编译软件包,以供开发人员使用或校验。
本发明实施例通过构建软件编译框架,将待编译指令输入所述软件编译框架,以输出编译软件包,能够针对性的根据待编译指令进行编译,避免产生由于多方开发人员参与而导致增加出错率的问题,减少了软件开发周期,提高了软件编译效率。
示例性的,在构建软件编译框架之前,包括:构建软件编译平台,其中,所述软件编译平台包括可视化操作界面和软件编译框架。
其中,软件编译平台可以是能够实现软件编译功能的网络平台或应用程序平台。其中,可视化操作界面可以是能够提供给用户直接进行操作的界面,包括图标、可供用户进行选择的选项以及信息提示等。例如,可视化操作界面可以基于一般的web前端网页书写,以适应不同用户在不同操作***下使用。
其中,软件编译平台可以包括可视化操作界面、软件编译框架以及实现可视化操作界面与软件编译框架相连接的数据转发/管理模块。其中,数据转发/管理模块可以实现基本的数据库添加、查询,并为可视化操作界面(前端)实现基本业务的控制流程,同时将前端的操作以指令形式转义成软件编译框架(或***核心实时脚本模块)的待编译指令(控制指令)。其中,可视化操作界面也可以通过使用简单的权限管理机制实现编译模块功能的切换。在用户登入后、选择所需的模块化编译功能,前端通知数据管理/转发模块实现功能的切换。
具体的,软件编译平台的构建可以是提供给开发人员进行直接操作的一种便捷通道。例如,可视化操作界面可以是前端输入与待编译功能相对应的图标或选项,数据转发/管理模块(后端)在接收到前端操作后,将前端操转换为软件编译框架(脚本端)能够识别的待编译指令,软件编译框架(脚本端)接收到待编译指令后,能够根据待编译指令完成可视化操作界面前端的控制指令。
本发明实施例提供的软件编译方法,通过构建软件编译平台能够提供给开发人员进行软件编译的一种便捷通道,通过可视化操作界面(即配置页面)可以对针对性模块进行快速配置、编译、编译信息反馈,以及命令分发。同时限制错误流程、简化使用方法,使操作者完全屏蔽掉复杂的代码编译流程,提高软件编译效率。
实施例二
图2A为本发明实施例二提供的一种软件编译方法的流程图,本实施例在上述实施例的基础上进行优化,提供了优化的将待编译指令输入所述软件编译框架,以输出编译软件包的处理方法,具体是:
相应的,本实施例的方法包括:
S210、构建软件编译框架。
S220、解析所述待编译指令,以生成编译顺序列表与多个待编译子指令。
其中,编译顺序列表为待编译指令中包含的多个待编译子指令以列表的方式存储至功能寄存器中。其中,多个待编译子指令在编译顺序列表中的排列顺序可以为软件编译框架进行编译的先后顺序。
由于软件编译框架接收到的待编译指令可以是由数据转发/管理模块输入的具有总结性语言特点的控制指令,并非代表具体操作的动作执行指令,因此软件编译框架内可设置指令解析器,以解析待编译指令,从而将待编译指令解析为包含具体操作指令的多个待编译子指令,并将待编译子指令根据编译顺序生成编译顺序列表存储至功能寄存器。例如,待编译指令可以包括多个功能指令,指令解析器可以将待编译指令进行解析,包括解析位置、级别、代码分类、动作指令以及组合关系等。具体例如,待编译指令可以是“邮件功能”指令,待编译子指令可以是根据“邮件功能”指令解析出的发送人物、发送主题以及发送内容等具体操作动作指令。
S230、根据所述编译顺序列表,逐个编译所述多个待编译子指令。
具体的,在生成编译顺序列表存储至功能寄存器后,可以根据待编译子指令存储的先后顺序对编译顺序列表中的所有待编译子指令进行编译。
示例性的,逐个编译所述多个待编译子指令,包括:在公共任务模板库中,逐个确定与所述多个待编译子指令相对应的脚本语言;根据所述脚本语言逐个编译各个待编译子指令,以形成相应的编译生成文件。
其中,公共任务模板库可以是包含大量通用指令的指令集合,例如可以是逻辑指令。需要说明的是,公共任务模板库中包含的指令可以提供给任何电子产品进行编译,不具备特殊性。
其中,脚本语言可以是一种编程语言,用来控制软件应用程序,脚本通常以文本保存,只在被调用时进行解释或编译。通过确定与待编译子指令相对应的脚本语言,可以在公共脚本库中确定编译使用的脚本代码,通过调用公共脚本库中的脚本代码,以继承或者重组等操作能够实现待编译子指令的编译。
其中,编译生成文件可以是与待编译子指令的控制命令条件下而生成的文件。例如,待编译子指令“发送人物”可以有至少一个编译生成文件与其对应;“发送主题”可以有至少一个编译生成文件与其对应;“发送内容”可以有至少一个编译生成文件与其对应。
具体例如,各种型号、各种版本的电子产品实现“邮件功能”的编译,都可以在公共任务模板库中调用“发送人物”、“发送主题”以及“发送内容”等具体操作指令(待编译子指令)。在公共任务模板库中调用“发送人物”后,可以通过在公共脚本库中调用与“发送人物”相对应的脚本语言进行编译,以生成相对应的编译生成文件;在公共任务模板库中调用“发送主题”后,可以通过在公共脚本库中调用与“发送主题”相对应的脚本语言进行编译,以生成相对应的编译生成文件;在公共任务模板库中调用“发送内容”后,可以通过在公共脚本库中调用与“发送内容”相对应的脚本语言进行编译,以生成相对应的编译生成文件。
示例性的,在将待编译指令输入所述软件编译框架,以输出编译软件包之前,还包括:判断所述待编译指令是否为客制化指令;若确定所述待编译指令为客制化指令,则将待编译指令输入所述软件编译框架,以输出编译软件包,包括:解析所述客制化指令存储至编译顺序列表;在个性化任务模板库中,确定与所述客制化指令相对应的脚本语言;根据所述脚本语言编译所述客制化指令,以形成相应的编译生成文件。
其中,客制化指令可以是根据客户需求进行特别定制的控制指令,以满足其需要。例如可以是个别型号或个别版本才能使用的控制命令。或者例如,客制化指令可以是“跳转”、“移动”、“重命名”以及“变量”等特殊指令。其中,个性化任务模板库(模板setting)可以是具有特殊性指令的指令集合,并非所有型号与所有版本电子产品能够使用的特殊指令。
具体的,在待编译指令输出软件编译框架之前,可以判断待编译指令是否为客制化指令。若确定待编译指令为客制化指令,则解析客制化指令存储功能寄存器中的编译顺序列表内。当编译至客制化指令时,在个性化任务模板库中,确定与客制化指令相对应的脚本语言,并根据脚本语言编译客制化指令,以形成相应的编译生成文件。例如,若某类电子产品中邮件功能要求“添加个人”客制化指令,那么,在编译该客制化指令时,在个性化任务模板库中确定与“添加个人”相对应的指令。
S240、存储与所述多个编译子指令相对应的编译生成文件,以形成所述编译软件包。
其中,编译软件包可以是将多个编译生成文件存储至一个的打包文件。编译软件包中可以实现电子产片的一项功能或多项功能。
示例性的,在以形成所述编译软件包之前,还包括:实时显示各个待编译子指令的编译状态。
为了方便开发人员观察软件编译进度,软件编译框架中可以设置状态管理模块,用于实时显示各个待编译子指令的编译状态。其中编译状态可以包括各个待编译子指令的完成状态,编译花费时间、编译顺序以及编译位置等。
示例性的,在以形成所述编译软件包之后,还包括:通过邮件或者服务器,将所述编译软件包提供给用户进行校验。
具体的,软件编译框架中可以设置软件发布模块,当编译软件包形成后,可以通过软件发布模块,将编译软件包上传至其他服务器或者邮件,以供用户进行校验。
本实施例通过对编译软件包进行校验后,能够有效降低编译软件包的编译出错率。
本发明实施例通过解析待编译指令,以生成编译顺序列表与多个待编译子指令,根据编译顺序列表,逐个编译多个待编译子指令,存储与多个编译子指令相对应的编译生成文件,以形成编译软件包,能够具体以下有益效果:使得产品设计中的非***编程人员可以专注自己处理的部分模块,同时不依赖编程人员、编译环境、编译方法即可进行差量编译;能够缩短***调试人员生成的测试固件的困难度与时间;能够规范化非代码模块开发的编译发布流程,缩短固件经人流转的周期,提高个人开发速度与多人流转造成的软件受损或错误等问题;能够兼容各种不同的方案公司的编译结构,同时快速准确、安全的编译正式固件;能够同时提供与其他***的对接接口,用于二次开发与配合开发;模板化编译模块,使之一旦出现类似模块只需进行简单的配置,而不需要重新书写编译脚本;以及能够节省软件开发、集成等模块的人力,将以前串行工作的人员岗位编程模块化共组与服务性工作的模式。
图2B为本发明实施例提供的一种软件编译平台的结构示意图,包括软件编译框架201和数据转发/管理模块202。其中,软件编译框架201包括指令解析器、功能寄存器、脚本执行队列、模板setting(个性化任务模板库)、公共任务模板库、公共脚本库、状态管理模块、实际代码级操作和软件发布模块等。
具体的,当数据转发/管理模块202解析好相应的待编译指令、客制化指令(可强制改变预制指令流程的指令),将其发送给软件编译框架201。软件编译框架201通过指令解析器实现多个待编译子指令以及其编译顺序列表(流程)的生成,并转发给功能寄存器。功能寄存器将基于公共脚本库生成的公共任务模板库中的各种相关功能,按照指令解析器生成的流程注入到脚本执行队列中。如果存在客制化指令,则按照客制化指令的内容重构脚本执行队列。同时将setting数据载入整个runtime环境(运行环境)。脚本执行队列实现对最终代码的操作,并在执行中生成相应状态通知状态管理模块,以便于状态管理模块被数据转发/管理模块202读取,返回前端(可视化操作界面)。最终在实际代码级操作模块生成最终编译软件包后,软件发布模块实现对代码生成物(编译软件包)的发布、校验以及邮件(或上传至发布服务器)通知等功能。
需要说明的是,在软件编译过程中,添加一个新的任务不在是根据顺序书写编译流程,而是基于公共脚本库中的相关函数继承或复写部分功能模块,然后在对模块中的调用流程解析为模板和setting模块。需要说明的是,在模板被建立之后,所有的类似的编译流程只需要配置流程的setting文件,而不需要重新书写编译脚本。整个脚本结构为一个较为庞大的框架,可以用于任意的基于linux环境的编译,或者可以借助自行设计的供公司使用的脚本库代替部分专有编译脚本的功能。
需要说明的是,图2B中的软件编译平台还包括可视化操作界面,图2B中并未示出。
本发明实施例提供的软件编译平台可以使得非编程人员也能快速使用,且能够大幅度提高编译效率,同时也具备高扩展性以适应编译结构的变化。
图2C为本发明实施例提供的一种基于软件编译框架开发的快速配屏编译***流程图。由图2C可以得到开发人员在编译配屏参数的完整流程,给出了web前端(可视化操作界面)、后端(数据转发/处理模块)以及脚本端(软件编译框架操作)多次交互的过程示意图。
需要说明的是,开发人员可以选择海斯平台,其中海斯平台可以为模板与其他平台兼容。本发明实施例提供的软件编译方法可以不涉及任何基于Makefile的编译流程,可以完全通过服务器上的脚本模拟正常编译实现对屏参、pq(Picture Quality,画质参数)数据、aq(Audio Quality,音质参数)数据、eeprom(Electrically Erasable ProgrammableRead-Only Memory,非易失性存储器)数据等相关组件的整合打包。其中,屏参(屏幕参数)可以是所配屏的型号和和逻辑板的参数,例如可以是尺寸(大小)、可视角、供电、分辨率以及液晶屏的总线接口等参数。其中,pq数据可以用于对画面的亮度、色温、背光曲线、色饱和度以及对比度等进行控制。其中,aq数据可以用于调整音量、频率特性、信噪比、动态范围、瞬态响应、立体声分离度以及立体声平衡度等参数。其中,eeprom数据可以用于存储内部数据,例如可以是应用于如电视机、空调中,存储用户设置的参数。
需要说明的是,本实施例提供的对“屏参、pq数据、aq数据、eeprom数据”的配屏编译仅仅是一种示例。可选的,在配屏编译过程中,本实施例还可以选择上述一种或多种数据进行编译。
需要说明的是,本实施例可以以网页***以网页作为前端控制台(可视化操作界面),允许对特定平台的特定项目使用的“屏参、pq数据、aq数据、eeprom数据”等相关模块快速替换和打包的功能,同时也提供对已经上传gerrit的代码中数据进行打包的功能。其中,gerrit可以是一种免费、开放源代码的代码审查软件,使用网页界面。
具体的,开发人员可以在可视化操作界面选择平台,设备后端接收开发人员的选择平台,并将同步代码syn code传输至脚本端进行解析。脚本端内的功能存储器清理初始化工作目录,并默认编译目录,生成机型共包依赖列表以及生成“屏参、eep数据以及factory列表”等。软件编译框架中的状态管理模块可以将编译流程显示在前端,显示支持机芯机型列表已经完成。在配屏参数编译的准备与选择过程中,后端接收到前端选择的产品机芯机型,后端server读取之前生成的共包列表,并实际生成共包factory初始文件夹。开发人员可以逐次在前端选择或上传后端可以识别的panel.img、eeprom数据、pq数据或者aq数据的待编译子指令,并传输至脚本端以使其逐个进行编译。在配屏参数编译的生成与发布过程中,脚本端根据接收到的待编译指令,复制工作目录的相关文件到最终打包文件夹(编译软件包),并按照工作目录的相关文件逐个进行编译,生成factory.img以及根据待编译子指令制作的ota包以形成的编译生成文件,存储至编译软件包,发送至邮件。
需要说明的是,本实施例提供的软件编译平台可以提供一个文本文件用来确认共包产品的共包关系,例如可以是factory.img的打包流程,同时也可以以该文本中内容作为确认是否支持此打包***的关键条件。
需要说明的是,本实施例提供的软件编译平台可以通过某种方式同步于代码平台的规则进行变量内容的交互。
需要说明的是,本实施例提供的软件编译平台可以在关键的编译步骤中对特定的人发送邮件以进行通知。
需要说明的是,本实施例提供的软件编译平台可以保留部分可扩展功能但不开放,以应对日后扩展,以及自动上传编译配屏相关信息到代码平台、通过解析xml中的信息确认代码仓库的路径与位置。
需要说明的是,本实施例提供的软件编译平台可以在任意编译、代码结构、文件位置等相关信息发生变化时,自动测试代码结构是否出现变更,以及时报警。
需要说明的是,本实施例提供的一种基于软件编译框架开发的快速配屏编译***流程图仅仅是一种示例,本实施例不对基于本实施例软件编译框架开发的关于电子产片内其他软件编译流程进行限定。
本实施例提供的基于软件编译框架开发的快速配屏编译***流程图,不仅可以实现非Makefile编译的编译框架,还可以在使用不同模板的情况下依然可以高效的链接至普通编译结构中去。
实施例三
图3为本发明实施例三提供的一种软件编译装置的结构示意图,本实施例可适用于各种软件编译情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供软件编译功能的设备中,例如可以是电脑。如图3所示,具体包括:框架编译模块31和指令输入模块32。
框架编译模块31,用于构建软件编译框架;
指令输入模块32,用于将待编译指令输入所述软件编译框架,以输出编译软件包。
本实施例所述软件编译装置用于执行上述各实施例所述的软件编译方法,其技术原理和产生的技术效果类似,这里不再赘述。
在上述实施例的基础上,指令输入模块32具体用于:
解析所述待编译指令,以生成编译顺序列表与多个待编译子指令;根据所述编译顺序列表,逐个编译所述多个待编译子指令;存储与所述多个编译子指令相对应的编译生成文件,以形成所述编译软件包。
在上述实施例的基础上,指令输入模块32具体用于:
在公共任务模板库中,逐个确定与所述多个待编译子指令相对应的脚本语言;根据所述脚本语言逐个编译各个待编译子指令,以形成相应的编译生成文件。
在上述实施例的基础上,还包括:状态管理模块。
状态管理模块,用于实时显示各个待编译子指令的编译状态。
在上述实施例的基础上,还包括:软件发布模块。
软件发布模块,用于通过邮件或者服务器,将所述编译软件包提供给用户进行校验。
在上述实施例的基础上,还包括:客制化指令判断模块。
客制化指令判断模块,用于判断所述待编译指令是否为客制化指令。
相应的,指令输入模块32具体用于:
将所述客制化指令存储至编译顺序列表;在个性化任务模板库中,确定与所述客制化指令相对应的脚本语言;根据所述脚本语言编译所述客制化指令,以形成相应的编译生成文件。
在上述实施例的基础上,还包括:平台构建模块
平台构建模块,用于构建软件编译平台,其中,所述软件编译平台包括可视化操作界面和软件编译框架。
实施例四
本实施四例提供了一种设备。图4是本发明实施例四提供的一种设备的结构示意图。参见图4,该设备包括:
一个或多个处理器410;
存储器420,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器410执行,使得所述一个或多个处理器410实现如本发明实施例提出的软件编译方法。
图4中以一个处理器410为例;处理器410和存储器420可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的软件编译方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而实现上述的软件编译方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据机顶盒的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至机顶盒。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本实施例提出的设备与本发明实施例提出的软件编译方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
实施例五
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提出的硼中子俘获治疗的束流评估方法。
本实施例提出的计算机可读存储介质与本发明实施例提出的软件编译方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台机顶盒(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种软件编译方法,其特征在于,包括:
构建软件编译框架;
将待编译指令输入所述软件编译框架,以输出编译软件包。
2.根据权利要求1所述的方法,其特征在于,所述将待编译指令输入所述软件编译框架,以输出编译软件包,包括:
解析所述待编译指令,以生成编译顺序列表与多个待编译子指令;
根据所述编译顺序列表,逐个编译所述多个待编译子指令;
存储与所述多个编译子指令相对应的编译生成文件,以形成所述编译软件包。
3.根据权利要求2所述的方法,其特征在于,逐个编译所述多个待编译子指令,包括:
在公共任务模板库中,逐个确定与所述多个待编译子指令相对应的脚本语言;
根据所述脚本语言逐个编译各个待编译子指令,以形成相应的编译生成文件。
4.根据权利要求2或3所述的方法,其特征在于,在以形成所述编译软件包之前,还包括:
实时显示各个待编译子指令的编译状态;
以及,在以形成所述编译软件包之后,还包括:
通过邮件或者服务器,将所述编译软件包提供给用户进行校验。
5.根据权利要求1所述的方法,其特征在于,在将待编译指令输入所述软件编译框架,以输出编译软件包之前,还包括:
判断所述待编译指令是否为客制化指令;
若确定所述待编译指令为客制化指令,则将待编译指令输入所述软件编译框架,以输出编译软件包,包括:
解析所述客制化指令存储至编译顺序列表;
在个性化任务模板库中,确定与所述客制化指令相对应的脚本语言;
根据所述脚本语言编译所述客制化指令,以形成相应的编译生成文件。
6.根据权利要求1所述的方法,其特征在于,在构建软件编译框架之前,包括:
构建软件编译平台,其中,所述软件编译平台包括可视化操作界面和软件编译框架。
7.一种软件编译装置,其特征在于,包括:
框架编译模块,用于构建软件编译框架;
指令输入模块,用于将待编译指令输入所述软件编译框架,以输出编译软件包。
8.根据权利要求7所述的装置,其特征在于,所述指令输入模块具体用于:
解析所述待编译指令,以生成编译顺序列表与多个待编译子指令;
根据所述编译顺序列表,逐个编译所述多个待编译子指令;
存储与所述多个编译子指令相对应的编译生成文件,以形成所述编译软件包。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的软件编译方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的软件编译方法。
CN201810128667.8A 2018-02-08 2018-02-08 软件编译方法、装置、设备及存储介质 Active CN108287720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810128667.8A CN108287720B (zh) 2018-02-08 2018-02-08 软件编译方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810128667.8A CN108287720B (zh) 2018-02-08 2018-02-08 软件编译方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108287720A true CN108287720A (zh) 2018-07-17
CN108287720B CN108287720B (zh) 2021-06-11

Family

ID=62832644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810128667.8A Active CN108287720B (zh) 2018-02-08 2018-02-08 软件编译方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108287720B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764772A (zh) * 2019-09-02 2020-02-07 广东天波信息技术股份有限公司 兼容多种nfcc的方法及装置
CN111933126A (zh) * 2019-05-13 2020-11-13 阿里巴巴集团控股有限公司 语音编译方法、装置、电子设备及计算机可读存储介质
CN112394893A (zh) * 2019-08-19 2021-02-23 西安诺瓦星云科技股份有限公司 可视化配屏方法、装置、***以及计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963915A (zh) * 2010-09-25 2011-02-02 中兴通讯股份有限公司 一种编译的构建方法及***
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107656736A (zh) * 2017-09-28 2018-02-02 上海鼎为电子科技(集团)有限公司 提高安卓***编译速度的方法及装置
US10649745B1 (en) * 2019-06-10 2020-05-12 Capital One Services, Llc User interface common components and scalable integrable reusable isolated user interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963915A (zh) * 2010-09-25 2011-02-02 中兴通讯股份有限公司 一种编译的构建方法及***
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107656736A (zh) * 2017-09-28 2018-02-02 上海鼎为电子科技(集团)有限公司 提高安卓***编译速度的方法及装置
US10649745B1 (en) * 2019-06-10 2020-05-12 Capital One Services, Llc User interface common components and scalable integrable reusable isolated user interface

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111933126A (zh) * 2019-05-13 2020-11-13 阿里巴巴集团控股有限公司 语音编译方法、装置、电子设备及计算机可读存储介质
CN112394893A (zh) * 2019-08-19 2021-02-23 西安诺瓦星云科技股份有限公司 可视化配屏方法、装置、***以及计算机可读介质
CN112394893B (zh) * 2019-08-19 2023-12-05 西安诺瓦星云科技股份有限公司 可视化配屏方法、装置、***以及计算机可读介质
CN110764772A (zh) * 2019-09-02 2020-02-07 广东天波信息技术股份有限公司 兼容多种nfcc的方法及装置

Also Published As

Publication number Publication date
CN108287720B (zh) 2021-06-11

Similar Documents

Publication Publication Date Title
US20230236809A1 (en) Ios application program construction method and apparatus, electronic device, and storage medium
CN110928529B (zh) 辅助算子开发的方法和***
US9021419B2 (en) System and method for supporting intelligent design pattern automation
WO2015078343A1 (zh) 用于web开发***的开发方法和web开发***
US20160170719A1 (en) Software database system and process of building and operating the same
US20160004516A1 (en) Code Generation Framework for Application Program Interface for Model
CN104407973A (zh) 一种自动化单元测试的实现方法及装置
JP6217277B2 (ja) ソフトウェア開発方法及びそのためのシステム
CN109933521A (zh) 基于bdd的自动化测试方法、装置、计算机设备及存储介质
Cirilo et al. A product derivation tool based on model-driven techniques and annotations.
CN102866944A (zh) 一种压力测试***及方法
CN108287720A (zh) 软件编译方法、装置、设备及存储介质
CN115658529A (zh) 用户页面的自动化测试方法以及相关设备
CN113946323A (zh) 基于微服务体系的在线开发方法、装置、设备及存储介质
CN103176894A (zh) 一种面向数据库的测试数据自动衍生方法和装置
WO2023039741A1 (zh) 基于微服务体系的在线开发方法、装置、设备及存储介质
CN101634965B (zh) 一种Linux内核级单元测试的方法
KR100994070B1 (ko) 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
JP2009277058A (ja) 通信ネットワークを利用したファームウェアの提供方法、そのシステムおよびサービスサーバ
Nedeltcheva et al. Challenges towards modeling and generating infrastructure-as-code
CN112784417B (zh) 一种基于SysML的航电分布式联合仿真方法及***
CN114115890A (zh) 微服务开发方法及***
Yarahmadi et al. Unraveling Bi-Lingual Multi-Feature Based Text Classification: A Case Study
CN109101429A (zh) 一种机顶盒的浏览器页面调试的方法及装置
Chebanyuk et al. An Approach for Design of Architectural Solutions Based on Software Model-To-Model Transformation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant