CN106547548B - 一种软件版本的编译方法和装置 - Google Patents

一种软件版本的编译方法和装置 Download PDF

Info

Publication number
CN106547548B
CN106547548B CN201610911176.1A CN201610911176A CN106547548B CN 106547548 B CN106547548 B CN 106547548B CN 201610911176 A CN201610911176 A CN 201610911176A CN 106547548 B CN106547548 B CN 106547548B
Authority
CN
China
Prior art keywords
module
sub
version
module group
modules
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.)
Active
Application number
CN201610911176.1A
Other languages
English (en)
Other versions
CN106547548A (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.)
Hisense Visual Technology Co Ltd
Original Assignee
Hisense Visual Technology 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 Hisense Visual Technology Co Ltd filed Critical Hisense Visual Technology Co Ltd
Priority to CN201610911176.1A priority Critical patent/CN106547548B/zh
Publication of CN106547548A publication Critical patent/CN106547548A/zh
Application granted granted Critical
Publication of CN106547548B publication Critical patent/CN106547548B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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编译表
Figure BDA0001134292850000061
本发明实施例中,通过获取并存储该子模块的版本的版本信息,可以实现对子模块的源代码追溯,可以准确的确定出每个子模块的版本以及每个子模块的版本的更改点等相关版本信息。具体实施中,可以将各个子模块单独放置在不同的主线上进行编译,在最终软件版本中也可实现对各个子模块的源代码追溯。
可选地,上述步骤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模块表
Figure BDA0001134292850000071
图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版本表
Figure BDA0001134292850000101
从上述内容可以看出:由于本发明实施例中将软件版本分为独立的子模块,因此只对各个子模块分别进行单独的编译,得到各个子模块的可执行文件即可,当需要得到模块组的可执行文件时,仅需将组成该模块组的各个子模块的可执行文件进行组合即可,当在该软件版本中重复出现某个子模块或模块组时,可以直接调用该子模块或模块组的可执行文件,避免了开发人员对软件版本中包括的所有模块均需进行编译的情况,减少了开发人员的工作量,简化了软件版本的开发过程。
图3示例性示出了本发明实施例提供的一种软件版本的编译装置的结构示意图。
基于相同构思,本发明实施例提供一种软件版本的编译装置的结构,如图3所示,包括编译单元301、获取单元302和处理单元303。
编译单元,用于针对软件版本包括的N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;软件版本包括N个子模块和M个模块组;M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;N为大于零的整数;M为大于等于零的整数;
获取单元,针对M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
处理单元,用于根据M个模块组中的每个模块组的版本的可执行文件,以及N个子模块中的每个子模块的版本的可执行文件,得到软件版本。
可选地,编译单元,还用于获取并存储该子模块的版本的版本信息;其中,版本信息包括该子模块的版本的源代码地址以及版本标识。
可选地,获取单元,用于针对M个模块组中的每个模块组,根据模块表确定该模块组包括的多个子模块;其中,模块表中包括N个子模块中每个子模块的标识、M个模块组中每个模块组的标识,以及每个模块组所包括的子模块和/或模块组的标识。
可选地,获取单元,用于针对M个模块组中的每个模块组,执行:
若该模块组包括多个子模块,则确定该模块组包括的多个子模块,对获取到的该多个子模块的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括多个模块组,则确定该模块组包括的多个模块组,对获取到的该多个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括至少一个子模块和至少一个模块组,则确定该模块组包括的至少一个子模块和至少一个模块组,对获取到的该至少一个子模块的版本的可执行文件和至少一个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件。
可选地,N个子模块中的每个子模块对应软件版本中的一个具有独立功能的应用程序。
从上述内容可以看出:由于本发明实施例中将软件版本分为独立的子模块,因此只对各个子模块分别进行单独的编译,得到各个子模块的可执行文件即可,当需要得到模块组的可执行文件时,仅需将组成该模块组的各个子模块的可执行文件进行组合即可,当在该软件版本中重复出现某个子模块或模块组时,可以直接调用该子模块或模块组的可执行文件,避免了开发人员对软件版本中包括的所有模块均需进行编译的情况,减少了开发人员的工作量,简化了软件版本的开发过程。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理装置的处理器以产生一个机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理装置上,使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程装置上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种软件版本的编译方法,其特征在于,所述软件版本包括N个子模块和M个模块组;所述M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;所述N为大于零的整数;所述M为大于等于零的整数;
针对所述N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;
针对所述M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
根据所述M个模块组中的每个模块组的版本的可执行文件,以及所述N个子模块中的每个子模块的版本的可执行文件,得到所述软件版本;
所述针对所述N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件之后,还包括:
获取并存储该子模块的版本的版本信息;
其中,所述版本信息包括该子模块的版本的源代码地址以及版本标识;
所述针对所述M个模块组中的每个模块组,确定该模块组包括的多个子模块,包括:
针对所述M个模块组中的每个模块组,根据模块表确定该模块组包括的多个子模块;
其中,所述模块表中包括所述N个子模块中每个子模块的标识、所述M个模块组中每个模块组的标识,以及每个模块组所包括的子模块和/或模块组的标识。
2.如权利要求1所述的方法,其特征在于,所述针对所述M个模块组中的每个模块组,确定该模块组的版本包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件,包括:
针对所述M个模块组中的每个模块组,执行:
若该模块组包括多个子模块,则确定该模块组包括的多个子模块,对获取到的该多个子模块的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括多个模块组,则确定该模块组包括的多个模块组,对获取到的该多个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括至少一个子模块和至少一个模块组,则确定该模块组包括的至少一个子模块和至少一个模块组,对获取到的该至少一个子模块的版本的可执行文件和至少一个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件。
3.如权利要求1所述的方法,其特征在于,所述N个子模块中的每个子模块对应所述软件版本中的一个具有独立功能的应用程序。
4.一种软件版本的编译装置,其特征在于,包括:
编译单元,用于针对所述软件版本包括的N个子模块中的每个子模块,对该子模块的版本进行编译,得到该子模块的版本的可执行文件;所述软件版本包括N个子模块和M个模块组;所述M个模块组中的每个模块组包括多个子模块,或者多个模块组,或者至少一个子模块和至少一个模块组;所述N为大于零的整数;所述M为大于等于零的整数;
获取单元,针对所述M个模块组中的每个模块组,确定该模块组包括的多个子模块;并将获取到的该多个子模块的版本的可执行文件进行组合得到该模块组的版本的可执行文件;
处理单元,用于根据所述M个模块组中的每个模块组的版本的可执行文件,以及所述N个子模块中的每个子模块的版本的可执行文件,得到所述软件版本;
所述编译单元,还用于:
获取并存储该子模块的版本的版本信息;
其中,所述版本信息包括该子模块的版本的源代码地址以及版本标识;
所述获取单元,用于:
针对所述M个模块组中的每个模块组,根据模块表确定该模块组包括的多个子模块;
其中,所述模块表中包括所述N个子模块中每个子模块的标识、所述M个模块组中每个模块组的标识,以及每个模块组所包括的子模块和/或模块组的标识。
5.如权利要求4所述的装置,其特征在于,所述获取单元,用于:
针对所述M个模块组中的每个模块组,执行:
若该模块组包括多个子模块,则确定该模块组包括的多个子模块,对获取到的该多个子模块的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括多个模块组,则确定该模块组包括的多个模块组,对获取到的该多个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件;
若该模块组包括至少一个子模块和至少一个模块组,则确定该模块组包括的至少一个子模块和至少一个模块组,对获取到的该至少一个子模块的版本的可执行文件和至少一个模块组的版本的可执行文件进行组合,得到该模块组的版本的可执行文件。
6.如权利要求4所述的装置,其特征在于,所述N个子模块中的每个子模块对应所述软件版本中的一个具有独立功能的应用程序。
CN201610911176.1A 2016-10-19 2016-10-19 一种软件版本的编译方法和装置 Active CN106547548B (zh)

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 CN106547548A (zh) 2017-03-29
CN106547548B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908421B (zh) * 2017-09-29 2022-06-24 北京创鑫旅程网络技术有限公司 软件代码版本管理与发布的方法及装置
CN111025127B (zh) * 2019-12-05 2022-09-23 上海御渡半导体科技有限公司 一种Pattern静态编译链接的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174219A (zh) * 2006-10-30 2008-05-07 西门子公司 根据使用环境执行和配置应用的方法和系统
AU2013205576B1 (en) * 2013-04-12 2014-03-27 Commonwealth Bank Of Australia Dynamically loadable composite software application

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193812B (zh) * 2011-06-03 2014-03-26 深圳市茁壮网络股份有限公司 一种代码编译方法、主机及系统
US9116712B2 (en) * 2013-02-28 2015-08-25 Microsoft Technology Licensing, Llc Compile 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 乐视控股(北京)有限公司 一种软件产品编译方法及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174219A (zh) * 2006-10-30 2008-05-07 西门子公司 根据使用环境执行和配置应用的方法和系统
AU2013205576B1 (en) * 2013-04-12 2014-03-27 Commonwealth Bank Of Australia Dynamically loadable composite software application

Also Published As

Publication number Publication date
CN106547548A (zh) 2017-03-29

Similar Documents

Publication Publication Date Title
CN100462920C (zh) 为优化的程序生成展开信息
CN112630622B (zh) ATE设备的pattern编译下载测试的方法及系统
US20100162217A1 (en) Debugging System Using Static Analysis
CN108614696B (zh) 一种应用制作的方法、静态库生成的方法及装置
CN104881311A (zh) 一种版本兼容的判断方法及装置
EP2799981A1 (en) Method for providing code, code generator and software development environment
CN110599341A (zh) 交易调用方法及系统
CN106547548B (zh) 一种软件版本的编译方法和装置
CN109934507A (zh) 一种业务流程调度的方法及装置
US20050137839A1 (en) Methods, apparatus and programs for system development
CN110990051B (zh) 软件包依赖关系的维护方法、装置、介质和设备
CN111966760A (zh) 基于Hive数据仓库的测试数据生成方法及装置
CN108694049B (zh) 一种更新软件的方法和设备
CN116629172A (zh) 芯片设计中模块自动生成和集成方法、装置、设备及介质
CN111984666A (zh) 数据库访问方法、装置、计算机可读存储介质和计算机设备
CN109766125B (zh) 批次间追平冲突的识别方法及装置
US20090064092A1 (en) Visual programming language optimization
CN116431127A (zh) 一种低代码开发方法、系统、设备和可读存储介质
CN111158665A (zh) 代码生成方法及装置、电子设备和存储介质
US9436587B2 (en) Test context generation
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
KR20060009843A (ko) 기계를 이용한 파일 처리 방법, 컴퓨터 프로그램 제품 및파일을 처리하도록 프로그래밍된 기계
CN115599400A (zh) 一种Docker镜像快速构建方法、系统及介质
CN111984241B (zh) 一种在线编码动态生效的方法、装置、设备和介质
CN111340175B (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