CN105893105A - 一种针对多个编译平台的编译系统和方法 - Google Patents
一种针对多个编译平台的编译系统和方法 Download PDFInfo
- Publication number
- CN105893105A CN105893105A CN201610187396.4A CN201610187396A CN105893105A CN 105893105 A CN105893105 A CN 105893105A CN 201610187396 A CN201610187396 A CN 201610187396A CN 105893105 A CN105893105 A CN 105893105A
- Authority
- CN
- China
- Prior art keywords
- compiling
- translation
- environment
- key element
- path
- 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.)
- Pending
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
Abstract
本发明涉及针对多个编译平台的编译技术领域,公开了一种针对多个编译平台的编译系统和方法,该系统包括:检测模块,检测编译对象所需的编译环境;映射模块,通过映射表根据所述编译环境映射得到相应的编译路径;以及执行模块,根据所述编译路径得到相应的配置要素并利用该配置要素执行编译。本发明将多个编译平台的配置要素集成在一起,每一个编译平台的编译路径通过映射表得到,以使得一个手持设备可以编译多个厂商出品的应用。
Description
技术领域
本发明涉及针对多个编译平台的编译技术,具体地,涉及一种针对多个编译平台的编译系统和方法。
背景技术
现在的智能手持设备像计算机一样具有独立的操作系统,独立的运行空间,可以由用户自行安装软件、游戏、导航等应用,并可以通过移动通讯网络来实现无线网络接入。
在安装新的应用的过程中,服务器需要对其进行编译,编译是从源语言编写的源程序产生目标程序的过程,是用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,编译程序把人们熟悉的语言转换成机器可识别的语言。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,如果分析过程中发现有语法错误,就会给出提示信息。如果在安装新的应用的过程中不能完成编译过程,也就无法实现安装。
现有技术中,每个厂商都有自己的编译平台,而各个厂商的编译平台是相互独立的,每个厂商的编译平台只能编译自己出品的应用,也就是说A厂商的编译平台不能用来编译B厂商出品的应用,而一个手持设备仅仅能安装一个用于编译的芯片,即一个手持设备仅能具有一个编译平台。如果用户希望使用自己的手持设备(例如,A厂商生产)下载其他厂商出品(例如,B厂商出品)的应用就不可以,这为用户带来了极大的不便。
发明内容
本发明的目的是提供一种针对多个编译平台的编译系统和方法,用于解决对需要不同编译平台的应用进行编译的问题。
为了实现上述目的,本发明提供了一种针对多个编译平台的编译系统,该系统包括:检测模块,检测编译对象所需的编译环境;映射模块,通过映射表根据所述编译环境映射得到相应的编译路径;以及执行模块,根据所述编译路径得到相应的配置要素并利用该配置要素执行编译。
优选地,所述映射表包括分别与多个编译环境中的每一个编译环境对应的编译路径及每一个编译环境与相应的编译路径之间的映射关系。
优选地,该系统还包括:存储模块,用于存储多个编译环境中的每一个编译环境的配置要素,每一个编译环境各自的配置要素分别存储在不同的文件夹中,从而每一个编译环境各自具有不同的编译路径。
优选地,所述配置要素包括配置文件和编译工具。
优选地,所述多个编译平台中的每一个编译平台对应一个编译环境。
相应地,本发明还提供了一种针对多个编译平台的编译方法,该方法包括:检测编译对象所需的编译环境;通过映射表根据所述编译环境映射得到相应的编译路径;以及根据所述编译路径得到相应的配置要素并利用该配置要素执行编译。
优选地,所述映射表包括分别与多个编译环境中的每一个编译环境对应的编译路径及每一个编译环境与相应的编译路径之间的映射关系。
优选地,该方法还包括:存储多个编译环境中的每一个编译环境的配置要素,每一个编译环境各自的配置要素分别存储在不同的文件夹中,从而每一个编译环境各自具有不同的编译路径。
优选地,所述配置要素包括配置文件和编译工具。
优选地,所述多个编译平台中的每一个编译平台对应一个编译环境。
通过上述技术方案,本发明将多个编译平台的配置要素集成在一起,每一个编译平台的编译路径通过映射表得到,以使得一个手持设备可以编译多个厂商出品的应用。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是本发明提供的针对多个编译平台的编译系统的框图;
图2是本发明提供的编译过程的消息传递图示;以及
图3是本发明提供的针对多个编译平台的编译方法的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本发明以手持设备为例进行说明,但是,本发明不仅可以用户手持设备,还可以用于电视、盒子、路由器、车联网系统、虚拟现实等智能硬件产品。将本发明提供的技术方案用于电视、盒子、路由器、车联网系统、虚拟现实等智能硬件产品也在本发明的保护范围之内。
图1是本发明提供的针对多个编译平台的编译系统的框图,如图1所示,该系统包括检测模块、映射模块和执行模块。检测模块检测编译对象所需的编译环境;映射模块通过映射表根据编译环境映射得到相应的编译路径;执行模块,根据编译路径得到相应的配置要素并利用该配置要素执行编译。
编译对象指的是所要在手持设备上安装的新应用,本领域技术人员应当理解,在一个应用被安装的过程中需要对其进行编译,这里将所编译的应用称为编译对象。
一般情况下,用户在安装多个应用的时候,会一个一个地安装,也就是说一个手持设备在同一时间仅会对一个编译对象进行编译,检测模块就检测正在被编译的编译对象所需的编译环境。
然而,如果用户同时安装多个应用,也就是一个手持设备同时在对多个编译对象进行编译,那么检测装置就同时检测这多个编译对象所需的编译环境,并针对每一个编译环境来映射得到每一个编译环境所对应的编译路径(此时会得到多个编译路径),然后执行模块分别根据得到的多个编译路径得到相应的配置要素,即与每一个编译对象对应的配置要素,此时为多个配置要素,并利用得到的多个配置要素对每一个配置要素所对应的编译对象进行编译。
编译环境是指编译一个应用所需要的运行环境,例如操作系统、Office及其他软件。映射表包括分别与多个编译环境中的每一个编译环境对应的编译路径及每一个编译环境与相应的编译路径之间的映射关系。这里编译路径是可以找到配置要素的路径,一个编译环境会映射到一个编译路径,映射表中就存储了这样的一种映射关系,并存储了每一个编译路径的具体内容(这里简称为编译路径)。
本发明提供的针对多个编译平台的编译系统还包括存储模块,该存储模块用于存储多个编译环境中的每一个编译环境的配置要素,每一个编译环境各自的配置要素分别存储在不同的文件夹中,从而每一个编译环境各自具有不同的编译路径。配置要素包括配置文件和编译工具,并且多个编译平台中的每一个编译平台对应一个编译环境。
本领域技术人员应当理解,每一个编译环境所对应的配置要素可能为一个,也可能为多个,如果一个编译环境对应一个配置要素,那么映射模块根据该编译环境通过映射表得到一个编译路径,执行模块通过该编译路径得到相应的配置要素并利用该配置要素执行编译过程;如果一个编译环境对应多个配置要素,那么映射模块根据该编译环境通过映射表得到多个编译路径,执行模块通过该多个编译路径分别得到相应的多个配置要素并利用该多个配置要素执行编译过程。
其中,配置要素所包括的配置文件和编译工具都可能是一个或多个,也就是说,一个配置要素可能包括一个配置文件和一个配置工具,也可能包括一个配置文件和多个配置工具,也可能包括多个配置文件和一个配置工具,还可能包括多个配置文件和多个配置工具。
本领域技术人员应当理解,配置要素所包括的配置文件和编译工具是一个还是多个是由所要编译的编译对象的需求来决定的,对于一个编译对象所需要什么样的配置要素不是本发明的发明点,这属于现有技术中的内容,于此不予赘述。
图2是本发明提供的编译过程的消息传递图示,以上所描述的检测模块和执行模块所进行的操作是在客户端侧完成的,映射模块进行的操作是在服务器侧完成的,存储模块设置在服务器端。
参照图2,在需要对编译对象进行编译时,客户端检测该编译对象所需的编译环境,并将检测到的所需的编译环境的信息作为消息发送给客户端,客户端在接收到包括所需的编译环境的消息后通过映射表查找到该编译环境所对应的编译路径,也就是说通过查找表查找到能够得到相应的配置要素的路径,即编译路径,并将编译路径作为消息发送给客户端,客户端在接收到包括编译路径的消息之后根据所接收到的编译路径向客户端请求配置要素,服务器在接收到该请求之后在存储模块中找到相应的配置要素并将其发送给客户端,客户端利用所接收到配置要素执行编译过程。
针对客户端,所执行的操作包括检测编译对象所需的编译环境,并向服务器发送包括所需的编译环境的消息,在接收到服务器所发送的包括编译路径(可能为一个,也可能为多个)的消息之后再向服务器发送请求配置要素的请求,在接收到服务器返回的配置要素的情况下执行编译过程。
针对服务器,所执行的操作包括在接收到包括编译环境的消息之后,通过映射表映射得到编译路径(可能为一个,也可能为多个),然后将包括映射路径的消息发送给客户端,在接收到请求配置要素的消息之后将相应的配置要素发送给客户端。
在同时对多个编译对象进行编译的情况下,在所需的编译环境也为多个,这种情况下,客户端可以将所需的所有编译环境的信息包括在一个消息中发送给客户端,也可以分别在多个消息中发送,每个消息中包括一个编译环境的信息。
在编译路径为多个的情况下,那么这多个编译路径可以通过一个消息发送给,也可以分别在多个消息中发送,每一个消息中包括一个编译路径。
在配置要素为多个的情况下,客户端可以通过一个消息将对所有的配置要素的请求发送给服务器,也可以分别在多个消息中发送,也可以每一个消息包括对一个配置要素的请求。
本领域技术人员应当理解,这里当然得到的不会是编译环境,而是编译环境的特定标识,本发明中为了便于描述,将编译环境的特定标识简要称为编译环境。
图3是本发明提供的针对多个编译平台的编译方法的流程图,如图3所示,该方法包括:
步骤301,检测编译对象所需的编译环境。
在手持设备仅在当前时刻安装一个应用的情况下,仅需要对一个编译对象进行编译,那么仅需要针对该一个编译对象来检测其所需的编译环境(可能为一个也可能为多个),如果同时在安装多个应用,那么就需要针对多个编译对象分别检测编译环境,这样也就会得到多个编译环境的相关信息。
步骤302,通过映射表根据编译环境映射得到相应的编译路径。
在检测到一个编译环境的情况下,通过映射表得到该编译环境对应的编译路径(在需要多个配置要素的情况下,可能会存在多个编译路径),在检测得到多个编译环境的情况下,每一个编译环境可以在映射表中映射得到至少一个编译路径(可能为一个也可能为多个),那么多个编译环境就可以在映射表中映射得到多个编译路径。
步骤303,根据编译路径得到相应的配置要素并利用该配置要素执行编译。
在仅有一个编译路径的情况下,根据该编译路径得到相应的配置要素(可能为一个也可能为多个,但无论是一个配置要素还是多个配置要素,都存储在该一个编译路径中,容易理解的是,这里仅有一个编译路径)并利用该配置要素执行编译。在有多个编译路径的情况下,根据不同的编译路径得到相应的配置要素,即多个配置要素,并利用所得到的多个配置要素执行编译。
具体采用什么样的编译环境及怎样利用配置要素执行编译为现有技术,不予赘述。
需要说明的是,本发明提供的针对多个编译平台的编译方法的具体细节及益处与本发明提供的针对多个编译平台的编译系统类似,可以参照上文中的描述,于此不予赘述。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
通过本发明提供的技术方案,可以实现在一个平台上对需要各种不同的编译环境的应用进行编译,也就是说,可以在一个手持设备上,不仅可以实现对A厂商出品的应用进行编译,也可以实现对B厂商出品的应用进行编译,实现了多个平台、多个环境的集成,为用户使用不同厂商出品的应用带来了极大的便利。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (10)
1.一种针对多个编译平台的编译系统,其特征在于,该系统包括:
检测模块,检测编译对象所需的编译环境;
映射模块,通过映射表根据所述编译环境映射得到相应的编译路径;以及
执行模块,根据所述编译路径得到相应的配置要素并利用该配置要素执行编译。
2.根据权利要求1所述的系统,其特征在于,所述映射表包括分别与多个编译环境中的每一个编译环境对应的编译路径及每一个编译环境与相应的编译路径之间的映射关系。
3.根据权利要求2所述的系统,其特征在于,该系统还包括:
存储模块,用于存储多个编译环境中的每一个编译环境的配置要素,每一个编译环境各自的配置要素分别存储在不同的文件夹中,从而每一个编译环境各自具有不同的编译路径。
4.根据权利要求1所述的系统,其特征在于,所述配置要素包括配置文件和编译工具。
5.根据权利要求1所述的系统,其特征在于,所述多个编译平台中的每一个编译平台对应一个编译环境。
6.一种针对多个编译平台的编译方法,其特征在于,该方法包括:
检测编译对象所需的编译环境;
通过映射表根据所述编译环境映射得到相应的编译路径;以及
根据所述编译路径得到相应的配置要素并利用该配置要素执行编译。
7.根据权利要求6所述的方法,其特征在于,所述映射表包括分别与多个编译环境中的每一个编译环境对应的编译路径及每一个编译环境与相应的编译路径之间的映射关系。
8.根据权利要求7所述的方法,其特征在于,该方法还包括:
存储多个编译环境中的每一个编译环境的配置要素,每一个编译环境各自的配置要素分别存储在不同的文件夹中,从而每一个编译环境各自具有不同的编译路径。
9.根据权利要求6所述的方法,其特征在于,所述配置要素包括配置文件和编译工具。
10.根据权利要求6所述的方法,其特征在于,所述多个编译平台中的每一个编译平台对应一个编译环境。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610187396.4A CN105893105A (zh) | 2016-03-29 | 2016-03-29 | 一种针对多个编译平台的编译系统和方法 |
PCT/CN2016/089545 WO2017166529A1 (zh) | 2016-03-29 | 2016-07-10 | 一种针对多个编译平台的编译系统和方法 |
US15/242,534 US20170286074A1 (en) | 2016-03-29 | 2016-08-21 | Electronic Device and Method for Multiple Compiling Platforms |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610187396.4A CN105893105A (zh) | 2016-03-29 | 2016-03-29 | 一种针对多个编译平台的编译系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893105A true CN105893105A (zh) | 2016-08-24 |
Family
ID=57014512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610187396.4A Pending CN105893105A (zh) | 2016-03-29 | 2016-03-29 | 一种针对多个编译平台的编译系统和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105893105A (zh) |
WO (1) | WO2017166529A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656739A (zh) * | 2017-11-07 | 2018-02-02 | 北京奇安信科技有限公司 | 基于windows系统的代码编译方法及装置 |
CN110109673A (zh) * | 2019-04-25 | 2019-08-09 | 武汉大学 | 一种基于北斗亚纳秒级高精度授时的编译器检测装置及方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124423B (zh) * | 2019-12-25 | 2023-06-13 | 上海米哈游天命科技有限公司 | 一种基于多平台的编译检测方法、装置、服务器及介质 |
CN112015428A (zh) * | 2020-08-21 | 2020-12-01 | 广州欢网科技有限责任公司 | 编译环境创建方法、装置及主机 |
CN115827056B (zh) * | 2023-02-01 | 2023-05-09 | 北京乐研科技股份有限公司 | 一种配置多种编译环境变换的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200923684A (en) * | 2007-11-29 | 2009-06-01 | Wistron Corp | A system for common compiler service based on the open service gateway initiative framework and the method thereof |
CN101836188A (zh) * | 2007-10-26 | 2010-09-15 | 高通股份有限公司 | 基于服务器的代码编译 |
CN101859244A (zh) * | 2009-04-10 | 2010-10-13 | 中兴通讯股份有限公司 | 多工具链工程构建方法及系统 |
US8458661B2 (en) * | 2006-03-31 | 2013-06-04 | Ebay Inc. | Distributed parallel build system |
CN103713889A (zh) * | 2012-09-29 | 2014-04-09 | 三亚中兴软件有限责任公司 | 一种应用的开发、编译和调试方法以及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697135B (zh) * | 2009-10-28 | 2012-06-27 | 东方网力科技股份有限公司 | 一种编译程序的方法及装置 |
CN102830981B (zh) * | 2012-09-12 | 2015-10-07 | 上海斐讯数据通信技术有限公司 | 一种用于嵌入式系统软件开发工具的实现方法 |
-
2016
- 2016-03-29 CN CN201610187396.4A patent/CN105893105A/zh active Pending
- 2016-07-10 WO PCT/CN2016/089545 patent/WO2017166529A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8458661B2 (en) * | 2006-03-31 | 2013-06-04 | Ebay Inc. | Distributed parallel build system |
CN101836188A (zh) * | 2007-10-26 | 2010-09-15 | 高通股份有限公司 | 基于服务器的代码编译 |
TW200923684A (en) * | 2007-11-29 | 2009-06-01 | Wistron Corp | A system for common compiler service based on the open service gateway initiative framework and the method thereof |
CN101859244A (zh) * | 2009-04-10 | 2010-10-13 | 中兴通讯股份有限公司 | 多工具链工程构建方法及系统 |
CN103713889A (zh) * | 2012-09-29 | 2014-04-09 | 三亚中兴软件有限责任公司 | 一种应用的开发、编译和调试方法以及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656739A (zh) * | 2017-11-07 | 2018-02-02 | 北京奇安信科技有限公司 | 基于windows系统的代码编译方法及装置 |
CN110109673A (zh) * | 2019-04-25 | 2019-08-09 | 武汉大学 | 一种基于北斗亚纳秒级高精度授时的编译器检测装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017166529A1 (zh) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893105A (zh) | 一种针对多个编译平台的编译系统和方法 | |
US8307350B2 (en) | Multi level virtual function tables | |
CN101957758B (zh) | 面向服务的架构应用系统中实现Web Service快速发布的方法 | |
US8584104B2 (en) | Compile-time management of polyphasic modules | |
US10089089B2 (en) | Data type reassignment | |
EP3491527B1 (en) | Debugging tool for a jit compiler | |
US20160139895A1 (en) | System and method for providing and executing a domain-specific language for cloud services infrastructure | |
US9335988B2 (en) | Managing build variants in a common repository | |
US9164742B2 (en) | Method and a system for searching for parts of a computer program which affects a given symbol | |
US11329889B2 (en) | Generating and implementing a platform-neutral cloud-native application model | |
WO2014210321A2 (en) | Omega names: name generation and derivation | |
US20200225973A1 (en) | Import mechanism for hardware intrinsics | |
CN108696381A (zh) | 一种协议配置方法及装置 | |
CN103425565A (zh) | 获取程序运行信息的方法及系统 | |
CN110058861B (zh) | 源码处理方法及装置、存储介质、电子设备 | |
EP1668498A2 (en) | Creating and checking runtime data types | |
US20100299659A1 (en) | Attribute based method redirection | |
CN110069259A (zh) | 基于idl文件的解析方法、装置、电子设备和存储介质 | |
CN116074208B (zh) | 一种多模态网络的模态部署方法及模态部署系统 | |
CN101980546B (zh) | 智能网平台、业务执行方法和分析业务异常的方法 | |
CN112506518B (zh) | 基于配置文件的编译方法和装置 | |
CN105447040A (zh) | 二进制文件管理、更新方法、装置以及系统 | |
CN103559127A (zh) | 一种缺陷处理方法及缺陷处理器 | |
CN115809076A (zh) | Ecu软件自动化集成方法及系统 | |
CN101952805A (zh) | 有效地关联名义上不兼容的类型 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |
|
WD01 | Invention patent application deemed withdrawn after publication |