CN106547548A - 一种软件版本的编译方法和装置 - Google Patents
一种软件版本的编译方法和装置 Download PDFInfo
- Publication number
- CN106547548A CN106547548A CN201610911176.1A CN201610911176A CN106547548A CN 106547548 A CN106547548 A CN 106547548A CN 201610911176 A CN201610911176 A CN 201610911176A CN 106547548 A CN106547548 A CN 106547548A
- Authority
- CN
- China
- Prior art keywords
- submodule
- module group
- version
- module
- executable file
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及软件开发领域,尤其涉及一种软件版本的编译方法和装置,用于简化软件版本的开发过程。本发明实施例中软件版本包括N个子模块和M个模块组;M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;针对N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;针对M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;根据M个模块组中的每个模块组的版本的可执行文件,以及N个子模块中的每个子模块的版本的可执行文件,得到软件版本。
Description
技术领域
本发明实施例涉及软件开发领域,尤其涉及一种软件版本的编译方法和装置。
背景技术
现有技术中一个软件版本的开发过程较为复杂,首先需编写该整个软件版本的所有源代码,之后对该所有源代码进行整体编译,整体编译之后得到该软件版本的可执行文件。
上述这种软件版本开发过程会加大开发人员的工作量。举例来说,电视产品一个机型系列的软件版本使用一个主线进行开发,该软件版本中可能存在一些通用的、具有独立功能的模块,该模块在软件版本中的不同位置可能重复出现,在上述方案中开发人员需对多次出现的模块均进行编译,从而造成了大量重复性工作。再比如,电视产品的不同机型系列的软件版本需要不同的主线分别进行开发,但是不同机型系列的软件版本之间可能存在一些通用的、具有独立功能的模块,这些模块就会在不同的主线上重复进行开发,也会造成了大量的重复工作,且整体的开发过程复杂。
发明内容
本发明实施例提供一种软件版本的编译方法和装置,用于简化软件版本的开发过程。
本发明实施例提供一种软件版本的编译方法,软件版本包括N个子模块和M个模块组;M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;N为大于零的整数;M为大于等于零的整数;针对N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;针对M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;根据M个模块组中的每个模块组的版本的可执行文件,以及N个子模块中的每个子模块的版本的可执行文件,得到软件版本。
本发明实施例提供一种软件版本的编译装置,包括:
编译单元,用于针对软件版本包括的N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;软件版本包括N个子模块和M个模块组;M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;N为大于零的整数;M为大于等于零的整数;
获取单元,针对M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
处理单元,用于根据M个模块组中的每个模块组的版本的可执行文件,以及N个子模块中的每个子模块的版本的可执行文件,得到软件版本。
由于本发明实施例中将软件版本分为独立的子模块,因此只对各个子模块分别进行单独的编译,得到各个子模块的可执行文件即可,当需要得到模块组的可执行文件时,仅需将组成该模块组的各个子模块的可执行文件进行组合即可,当在该软件版本中重复出现某个子模块或模块组时,可以直接调用该子模块或模块组的可执行文件,避免了开发人员对软件版本中包括的所有模块均需进行编译的情况,减少了开发人员的工作量,简化了软件版本的开发过程。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种模块的划分结构示意图;
图2为本发明实施例提供的一种软件版本的编译方法的流程示意图;
图2a为本发明实施例提供的一种子模块的版本编译方法流程示意图;
图2b为本发明实施例提供的一种在模块表中添加待添加模块的方法流程示意图;
图3为本发明实施例提供的一种软件版本的编译装置的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例所提供的方案用于软件版本的开发,本发明实施例中将软件版本分割为多个模块,每个模块可以为本发明实施例中的子模块或模块组(英文可称为module)。图1示例性示出了本发明实施例提供的一种模块的划分结构示意图,如图1所示,软件版本中的模块包括模块组1、模块组3、模块组4,以及子模块5、子模块6、子模块7和子模块2。
具体实施中,可选地,本发明实施例中每个子模块对应软件版本中的一个具有独立功能的应用程序,也就是说每个子模块具有独立的功能,不需依赖其它模块就能够完成的一些功能,比如子模块为驱动模块,则该驱动模块可以独立完成某个驱动功能。可选地,该子模块可为软件版本中按功能划分的最细粒度的模块,也可为较为常用的较粗粒度的模块。本发明实施例中的模块组可由多个子模块组成,也可由多个模块组组成,也可由至少一个子模块和至少一个模块组组成。比如图1中所示的,模块组3包括子模块5、子模块6和子模块7。模块组4包括子模块2和子模块7。模块组1包括模块组3和模块组4。
该软件版本中每个子模块和模块组有一个版本。比如图1中,模块组3版本V2.0包括子模块5版本V1.0、子模块6版本V2.0和子模块7版本V2.2。模块组4版本V1.0包括子模块2版本V2.7和子模块7版本V2.2。模块组1版本V1.0包括模块组3版本V2.0和模块组4版本V1.0。每个模块可能在开发过程中会有一些修改,当存在一些改变时,即生成该模块的新版本,举个例子,比如对子模块6的版本V2.0进行了改进,改进后的版本为子模块6的版本V2.1,则模块组3的版本也需要进行相应更改,模块组3版本V2.0中包括子模块6的版本V2.0,子模块6更新为版本V2.1时,模块组3的版本也应进行更新,比如更新为模块组3版本V2.1。本发明实施例中,子模板的版本都需要单独编译。
基于上述描述,图2示例性示出了本发明实施例提供的一种软件版本的编译方法的流程示意图,如图2所示,该方法中软件版本包括N个子模块和M个模块组;M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;N为大于零的整数;M为大于等于零的整数。该方法包括:
步骤201,针对N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;
步骤202,针对M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
步骤203,根据M个模块组中的每个模块组的版本的可执行文件,以及N个子模块中的每个子模块的版本的可执行文件,得到软件版本。
由于本发明实施例中将软件版本分为独立的子模块,因此只对各个子模块分别进行单独的编译,得到各个子模块的可执行文件即可,当需要得到模块组的可执行文件时,仅需将组成该模块组的各个子模块的可执行文件进行组合即可,当在该软件版本中重复出现某个子模块或模块组时,可以直接调用该子模块或模块组的可执行文件,避免了开发人员对软件版本中包括的所有模块均需进行编译的情况,减少了开发人员的工作量,简化了软件版本的开发过程。
可选地,上述步骤201中,针对N个子模块中的每个子模块,在确定未存储该子模块的版本的可执行文件时,对该子模块的版本进行编译,得到该子模块的版本的可执行文件。可选地,在每次进行软件开发过程中,可将各个软件开发过程中的各个模块版本的可执行文件进行存储,以备下次进行软件开发时若使用到可直接调用。如此,在进行其它软件版本的开发时,若需要用到该软件版本中包括的一些子模块或模块组,也可直接调用该子模块或模块组的可执行文件,从而进一步降低了其它软件版本开发过程的工作量。
可选地,上述步骤201之后,还包括获取并存储该子模块的版本的版本信息;其中,版本信息包括该子模块的版本的源代码地址以及版本标识。图2a示例性示出了本发明实施例提供的一种子模块的版本编译方法流程示意图,如图2a所示,以图1中子模块5版本V1.0为例进行示意性说明,可选地,本发明实施例中对各个子模块进行编译,对模块组不进行编译。
步骤2101,加载需编译的模块5版本V1.0,并打开编译申请界面;
步骤2102,获取并存储模块5版本V1.0的版本信息;可选地从编译版本中读取版本信息;
步骤2103,对模块5版本V1.0进行版本编译,得到模块5版本V1.0的可执行文件。可选地,将模块5版本V1.0的编译信息填入编译(英文可称为compile)表中。表1示例性示出了一种可能的编译表,以图1所示内容为例,软件版本中一共包括四个子模块,该四个子模块分别进行编译后,将编译信息分别填入编译表中。
如表1所示,编译表中包括编译标识(英文可称为CompileID)、配置文件(英文可称为Conf)、模块标识(英文可称为ModuleID)、源代码路径(英文可称为CodePath)、源代码分支(英文可称为CodeBranch)、源代码版本标识(英文可称为CodeTag)和可执行文件(英文可称为TargetFile)。以表1中第二行为例进行说明,表1中编译标识为对编译操作进行的标识,每一个编译操作对应一个编译标识。编译标识“编译001”的配置文件地址也放入编译表中,编译001所编译的模块标识为子模块5,源代码路径和源代码分支为子模块5的源代码地址,编译标识“编译001”所编译的源代码版本标识为版本V1.0,可执行文件那一列可以直接放置子模块5版本V1.0的可执行文件,也可放置子模块5版本V1.0的可执行文件的地址。
表1编译表
本发明实施例中,通过获取并存储该子模块的版本的版本信息,可以实现对子模块的源代码追溯,可以准确的确定出每个子模块的版本以及每个子模块的版本的更改点等相关版本信息。具体实施中,可以将各个子模块单独放置在不同的主线上进行编译,在最终软件版本中也可实现对各个子模块的源代码追溯。
可选地,上述步骤202中,针对M个模块组中的每个模块组,确定该模块组包括的多个子模块,包括:针对M个模块组中的每个模块组,根据模块表确定该模块组包括的多个子模块;其中,模块表中包括N个子模块中每个子模块的标识、M个模块组中每个模块组的标识,以及每个模块组所包括的子模块和/或模块组的标识。
如此,可以实现子模块和/或模块组之间的灵活的组合,且因为模块表中记录每个模块组包括的模块的标识,因此可以在实现灵活的组合的同时,实现对对每个模块组的成员的追溯。具体实施中,模块表的建立时间和对各个子模块进行编译的时间之间没有先后顺序,谁先谁后或者同时进行都可以。
表2示例性示出了本发明实施例提供的一种可能的模块表的示意图。如表2所示,该模块表中可包括模块标识(英文可称为module ID)、模块名称(英文可称为modulename)、模块描述(英文可称为module Desc)、系统用户(英文可称为Owner)和成员(英文可称为member)。以表2中第六行内容为例进行介绍,模块标识为子模块3,模块名称为驱动模块,模块描述中填写该模块组3的相关信息,系统用户可为开发模块组3的用户标识,成员即标识模块组3所包括的模块,比如图1所示,模块组3包括子模块5、子模块6、子模块7。如表2所示,若模块为子模块,则该子模块因为为最小单位,因此该子模块对应的成员一栏填写空。
表2模块表
图1中示出了几种可能的模块组合,也存在子模块和模块组一起组成新的模块组的情况,比如模块组8包括模块组1和子模块9。
具体实施中,可以预先建立一个模块表,之后将软件版本的模块添加至模块表中,具体来说,可以先添加子模块,之后再添加由子模块组成的模块组。举个例子,比如模块组3包括子模块5、子模块6和子模块7,则在模块表中先添加子模块5、子模块6和子模块7,之后再添加模块组3;再比如模块组1包括模块组3和模块组4,则可先在模块表中添加模块组3和模块组4,之后再添加模块组1。如此,在向模块表中的成员一列添加内容时,可以通过选项的方式选择模块表中已有的模块标识。
图2b示例性示出了本发明实施例提供的一种在模块表中添加待添加模块的方法流程示意图,以图1中添加模块组1为例进行说明,如图2b所示,该方法包括:
步骤2201,确定模块组1为新增的模块或者为对模块表中已有模块的修改;
步骤2202,判断模块组1是否为新增的模块;若是,则执行步骤2203;若否,则执行步骤2204;
步骤2203,将模块组1增加到模块表中,可选地,对应在模块表中填写该模块组1的相关信息,比如该模块组1的成员;
步骤2204,更新模块表中模块组1的相关信息;举个例子,比如原来模块表中模块组1的系统用户是A,此次将模块组1的系统用户修改为B,则开发人员在执行步骤2201时确定该模块组1是对模块表中已有模块的修改,在步骤2202确定模块组1是模块表中已有的模块标识,并非为新增的模块,则使用修改后模块组1的信息“系统用户是B”更新模块表;
步骤2205,结束。
本发明实施例中对软件版本的每个子模块都进行编译,生成各个子模块的可执行文件,对各个模块组可通过搭积木的方式来生成该模块组对应的可执行文件。一种可选地实施方式为:针对M个模块组中的每个模块组,确定该模块组的版本包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件,包括:
针对M个模块组中的每个模块组,执行:
若该模块组包括多个子模块,则确定该模块组包括的多个子模块,对获取到的该多个子模块的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括多个模块组,则确定该模块组包括的多个模块组,对获取到的该多个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括至少一个子模块和至少一个模块组,则确定该模块组包括的至少一个子模块和至少一个模块组,对获取到的该至少一个子模块的版本的可执行文件和至少一个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件。
具体来说,可选地,本发明实施例中每个子模块对应一个可执行文件,子模块在组成模块组时,每个模块组也对应一个可执行文件,每个模块组的可执行文件通过该模块组包括的所有子模块的可执行文件的堆叠组成,无需开发人员重新编译。当通过多个模块组再组成一个新的模块组时,可将多个模块组分别对应的可执行文件通过堆叠形成该新的模块组。
如表3所示,该模块表中可包括版本标识(英文可称为Version ID)、待生成版本的模块标识(英文可称为module ID)、待生成版本的模块所包括的模块标识(英文可称为module ID)、待生成版本的模块所包括的子模板的编译标识(英文可称为compile ID)和生成该模块的原因(英文可称为reason)。以表3中第四行内容为例进行介绍,版本标识V1.0,待生成版本的模块标识为模块组1,待生成版本的模块所包括的模块标识为模块组3和模块组4,即模块组1包括模块组3和模块组4,编译标识为编译001、编译002、编译003、编译003、编译004,即模块组1的可执行文件由编译标识对应的可执行文件组成。在原因一列可以填写创建模块组1的版本V1.0时的具体原因,一共后期开发人员了解模块组1版本V1.0的创建过程。进一步,可根据表3确定出任一个模块组中所包括的每个子模块的编译标识,进一步可根据编译标识从编译表中确定出每个子模块的源代码,实现了对每个模块组版本的源代码追溯。
表3示例性示出了本发明实施例提供的一种可能的版本表的示意图。
表3版本表
从上述内容可以看出:由于本发明实施例中将软件版本分为独立的子模块,因此只对各个子模块分别进行单独的编译,得到各个子模块的可执行文件即可,当需要得到模块组的可执行文件时,仅需将组成该模块组的各个子模块的可执行文件进行组合即可,当在该软件版本中重复出现某个子模块或模块组时,可以直接调用该子模块或模块组的可执行文件,避免了开发人员对软件版本中包括的所有模块均需进行编译的情况,减少了开发人员的工作量,简化了软件版本的开发过程。
图3示例性示出了本发明实施例提供的一种软件版本的编译装置的结构示意图。
基于相同构思,本发明实施例提供一种软件版本的编译装置的结构,如图3所示,包括编译单元301、获取单元302和处理单元303。
编译单元,用于针对软件版本包括的N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;软件版本包括N个子模块和M个模块组;M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;N为大于零的整数;M为大于等于零的整数;
获取单元,针对M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
处理单元,用于根据M个模块组中的每个模块组的版本的可执行文件,以及N个子模块中的每个子模块的版本的可执行文件,得到软件版本。
可选地,编译单元,还用于获取并存储该子模块的版本的版本信息;其中,版本信息包括该子模块的版本的源代码地址以及版本标识。
可选地,获取单元,用于针对M个模块组中的每个模块组,根据模块表确定该模块组包括的多个子模块;其中,模块表中包括N个子模块中每个子模块的标识、M个模块组中每个模块组的标识,以及每个模块组所包括的子模块和/或模块组的标识。
可选地,获取单元,用于针对M个模块组中的每个模块组,执行:
若该模块组包括多个子模块,则确定该模块组包括的多个子模块,对获取到的该多个子模块的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括多个模块组,则确定该模块组包括的多个模块组,对获取到的该多个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括至少一个子模块和至少一个模块组,则确定该模块组包括的至少一个子模块和至少一个模块组,对获取到的该至少一个子模块的版本的可执行文件和至少一个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件。
可选地,N个子模块中的每个子模块对应软件版本中的一个具有独立功能的应用程序。
从上述内容可以看出:由于本发明实施例中将软件版本分为独立的子模块,因此只对各个子模块分别进行单独的编译,得到各个子模块的可执行文件即可,当需要得到模块组的可执行文件时,仅需将组成该模块组的各个子模块的可执行文件进行组合即可,当在该软件版本中重复出现某个子模块或模块组时,可以直接调用该子模块或模块组的可执行文件,避免了开发人员对软件版本中包括的所有模块均需进行编译的情况,减少了开发人员的工作量,简化了软件版本的开发过程。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理装置的处理器以产生一个机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理装置上,使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程装置上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种软件版本的编译方法,其特征在于,所述软件版本包括N个子模块和M个模块组;所述M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;所述N为大于零的整数;所述M为大于等于零的整数;
针对所述N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;
针对所述M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
根据所述M个模块组中的每个模块组的版本的可执行文件,以及所述N个子模块中的每个子模块的版本的可执行文件,得到所述软件版本。
2.如权利要求1所述的方法,其特征在于,所述针对所述N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件之后,还包括:
获取并存储该子模块的版本的版本信息;
其中,所述版本信息包括该子模块的版本的源代码地址以及版本标识。
3.如权利要求1或2所述的方法,其特征在于,所述针对所述M个模块组中的每个模块组,确定该模块组包括的多个子模块,包括:
针对所述M个模块组中的每个模块组,根据模块表确定该模块组包括的多个子模块;
其中,所述模块表中包括所述N个子模块中每个子模块的标识、所述M个模块组中每个模块组的标识,以及每个模块组所包括的子模块和/或模块组的标识。
4.如权利要求1所述的方法,其特征在于,所述针对所述M个模块组中的每个模块组,确定该模块组的版本包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件,包括:
针对所述M个模块组中的每个模块组,执行:
若该模块组包括多个子模块,则确定该模块组包括的多个子模块,对获取到的该多个子模块的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括多个模块组,则确定该模块组包括的多个模块组,对获取到的该多个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括至少一个子模块和至少一个模块组,则确定该模块组包括的至少一个子模块和至少一个模块组,对获取到的该至少一个子模块的版本的可执行文件和至少一个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件。
5.如权利要求1所述的方法,其特征在于,所述N个子模块中的每个子模块对应所述软件版本中的一个具有独立功能的应用程序。
6.一种软件版本的编译装置,其特征在于,包括:
编译单元,用于针对所述软件版本包括的N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;所述软件版本包括N个子模块和M个模块组;所述M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;所述N为大于零的整数;所述M为大于等于零的整数;
获取单元,针对所述M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
处理单元,用于根据所述M个模块组中的每个模块组的版本的可执行文件,以及所述N个子模块中的每个子模块的版本的可执行文件,得到所述软件版本。
7.如权利要求6所述的装置,其特征在于,所述编译单元,还用于:
获取并存储该子模块的版本的版本信息;
其中,所述版本信息包括该子模块的版本的源代码地址以及版本标识。
8.如权利要求6或7所述的装置,其特征在于,所述获取单元,用于:
针对所述M个模块组中的每个模块组,根据模块表确定该模块组包括的多个子模块;
其中,所述模块表中包括所述N个子模块中每个子模块的标识、所述M个模块组中每个模块组的标识,以及每个模块组所包括的子模块和/或模块组的标识。
9.如权利要求6所述的装置,其特征在于,所述获取单元,用于:
针对所述M个模块组中的每个模块组,执行:
若该模块组包括多个子模块,则确定该模块组包括的多个子模块,对获取到的该多个子模块的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括多个模块组,则确定该模块组包括的多个模块组,对获取到的该多个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括至少一个子模块和至少一个模块组,则确定该模块组包括的至少一个子模块和至少一个模块组,对获取到的该至少一个子模块的版本的可执行文件和至少一个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件。
10.如权利要求6所述的装置,其特征在于,所述N个子模块中的每个子模块对应所述软件版本中的一个具有独立功能的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610911176.1A CN106547548B (zh) | 2016-10-19 | 2016-10-19 | 一种软件版本的编译方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610911176.1A CN106547548B (zh) | 2016-10-19 | 2016-10-19 | 一种软件版本的编译方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547548A true CN106547548A (zh) | 2017-03-29 |
CN106547548B CN106547548B (zh) | 2020-06-30 |
Family
ID=58369255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610911176.1A Active CN106547548B (zh) | 2016-10-19 | 2016-10-19 | 一种软件版本的编译方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547548B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN111025127A (zh) * | 2019-12-05 | 2020-04-17 | 上海御渡半导体科技有限公司 | 一种Pattern静态编译链接的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174219A (zh) * | 2006-10-30 | 2008-05-07 | 西门子公司 | 根据使用环境执行和配置应用的方法和系统 |
CN102193812A (zh) * | 2011-06-03 | 2011-09-21 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
AU2013205576B1 (en) * | 2013-04-12 | 2014-03-27 | Commonwealth Bank Of Australia | Dynamically loadable composite software application |
US20140245271A1 (en) * | 2013-02-28 | 2014-08-28 | Microsoft Corporation | Compiler Based Obfuscation |
CN104239114A (zh) * | 2013-11-12 | 2014-12-24 | 新华瑞德(北京)网络科技有限公司 | 应用程序的编译处理方法及装置 |
CN105843662A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
CN105867993A (zh) * | 2016-03-29 | 2016-08-17 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
-
2016
- 2016-10-19 CN CN201610911176.1A patent/CN106547548B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174219A (zh) * | 2006-10-30 | 2008-05-07 | 西门子公司 | 根据使用环境执行和配置应用的方法和系统 |
CN102193812A (zh) * | 2011-06-03 | 2011-09-21 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
US20140245271A1 (en) * | 2013-02-28 | 2014-08-28 | Microsoft Corporation | Compiler Based Obfuscation |
AU2013205576B1 (en) * | 2013-04-12 | 2014-03-27 | Commonwealth Bank Of Australia | Dynamically loadable composite software application |
CN104239114A (zh) * | 2013-11-12 | 2014-12-24 | 新华瑞德(北京)网络科技有限公司 | 应用程序的编译处理方法及装置 |
CN105843662A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
CN105867993A (zh) * | 2016-03-29 | 2016-08-17 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN107908421B (zh) * | 2017-09-29 | 2022-06-24 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN111025127A (zh) * | 2019-12-05 | 2020-04-17 | 上海御渡半导体科技有限公司 | 一种Pattern静态编译链接的方法 |
CN111025127B (zh) * | 2019-12-05 | 2022-09-23 | 上海御渡半导体科技有限公司 | 一种Pattern静态编译链接的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106547548B (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112417578B (zh) | 一种基于Dynamo和Excel进行预制桩建模模型的方法及系统 | |
EP2656208B1 (en) | Agile communication operator | |
EP0099135B1 (en) | Dynamic gate array whereby an assembly of gates is simulated by logic operations on variables selected according to the gates | |
US7331037B2 (en) | Static memory allocation in a graphical programming system | |
CN103942099B (zh) | 基于Hive的并行执行任务方法及装置 | |
CN107291480A (zh) | 一种函数调用方法及装置 | |
CN107168749A (zh) | 一种编译方法、装置、设备和计算机可读存储介质 | |
CN109934507A (zh) | 一种业务流程调度的方法及装置 | |
CN103718159A (zh) | 图像处理软件开发方法、图像处理软件开发装置和图像处理软件开发程序 | |
CN112630622A (zh) | ATE设备的pattern编译下载测试的方法及系统 | |
CN106547548A (zh) | 一种软件版本的编译方法和装置 | |
US20050137839A1 (en) | Methods, apparatus and programs for system development | |
CN104714881B (zh) | 一种表格驱动的单元测试系统和方法 | |
CN108170602A (zh) | 一种测试用例生成方法、装置、终端及计算机可读介质 | |
CN109213671B (zh) | 软件测试方法及其平台 | |
CN109656491A (zh) | 一种pcb整板丝印字字体的设置方法、装置及电子设计系统 | |
CN106250110A (zh) | 建立模型的方法及装置 | |
CN102968404B (zh) | 地震资料的初至信息处理方法及装置 | |
CN111813739A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN107665167A (zh) | 程序调试方法、装置及程序开发设备 | |
CN110457224A (zh) | 生成测试数据的方法及装置 | |
CN107153563A (zh) | 一种软件版本生成方法及装置 | |
CN108932407A (zh) | 一种程序安全保护方法及装置 | |
CN107315599A (zh) | 图形库提取方法及装置 | |
CN113222164B (zh) | 量子计算程序的生成方法及其表达形式 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Video Technology Co., Ltd Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Applicant before: HISENSE ELECTRIC Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |