CN109144521A - 生成静态库的方法、装置、计算机设备及可读存储介质 - Google Patents

生成静态库的方法、装置、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN109144521A
CN109144521A CN201811140826.2A CN201811140826A CN109144521A CN 109144521 A CN109144521 A CN 109144521A CN 201811140826 A CN201811140826 A CN 201811140826A CN 109144521 A CN109144521 A CN 109144521A
Authority
CN
China
Prior art keywords
file
static library
development engineering
compiling
parallel
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
Application number
CN201811140826.2A
Other languages
English (en)
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.)
Wuba Co Ltd
Original Assignee
Wuba 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 Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN201811140826.2A priority Critical patent/CN109144521A/zh
Publication of CN109144521A publication Critical patent/CN109144521A/zh
Pending legal-status Critical Current

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

生成静态库的方法、装置、计算机设备及可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种生成静态库的方法、装置、计算机设备及计算机可读存储介质。
背景技术
随着应用程序(App,Application)业务功能的不断增多,在开发应用程序时,将应用程序划分为多个开发工程进行开发。在对开发工程的源代码文件编译成静态库文件时,首先,需要将源代码文件依次进行终端类编译和模拟器类编译,以获取两个编译结果;其次,依次执行以下操作:将两个编译结果中的静态库(.a库)进行合并,分别提取每个编译结果中的头文件(.h文件),以及分别提取每个编译结果中的资源文件;最后,将合并后的静态库,提取到的所有接口文件,及提取到的所有资源文件合并为该开发工程的静态库文件。因此,在对开发工程的源代码文件编译成静态库文件的过程中,需要顺序执行每一步骤,耗时过长,编译效率低。
发明内容
本发明提出了一种生成静态库的方法、装置、计算机设备及计算机可读存储介质,用以解决现有技术中生成静态库文件效率低的问题。
本发明采用的技术方案是提供一种生成静态库的方法,包括:
对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果;
对所述每一开发工程的编译结果并行执行每一静态库数据文件的提取操作;
将提取到的所述每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
可选的,所述静态库数据文件,包括:静态库、头文件和资源文件;
所述对所述每一开发工程的编译结果并行执行每一静态库数据文件的提取操作,包括:
对所述每一开发工程的编译结果并行执行以下操作中的每一操作:合并在所述每一开发工程的编译结果中提取到的静态库,提取所述每一开发工程的编译结果中的头文件,以及提取所述每一开发工程的编译结果中的资源文件。
可选的,所述对所述每一开发工程的编译结果并行每一执行静态库数据文件的提取操作,包括:
创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;
并行在每一所述提取操作线程中执行一个所述静态库数据文件的提取操作。
可选的,所述对开发工程对应的源码文件并行执行终端类和模拟器类编译,包括:
创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
通过每一有名管道根据获取到的线程令牌,创建一个编译线程;
并行在每一所述编译线程中执行所述每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
可选的,所述开发工程的数量为多个;
所述对开发工程对应的源码文件并行执行终端类和模拟器类编译,包括:
判断开发工程之间是否存在依赖关系;
若开发工程之间存在依赖关系,则对存在依赖关系的所有开发工程对应的源码文件串行执行终端类和模拟器类编译;
否则,对每一开发工程对应的源码文件并行执行终端类和模拟器类编译。
本发明还提供一种生成静态库的装置,包括:
编译模块,用于对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果;
提取模块,用于对所述每一开发工程的编译结果并行执行每一静态库数据文件的提取操作;
生成模块,用于将提取到的所述每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
可选的,所述静态库数据文件,包括:静态库、头文件和资源文件;
所述提取模块,具体用于:对所述每一开发工程的编译结果并行执行以下操作中的每一操作:合并在所述每一开发工程的编译结果中提取到的静态库,提取所述每一开发工程的编译结果中的头文件,以及提取所述每一开发工程的编译结果中的资源文件。
可选的,所述提取模块,包括:
第一获取模块,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
第一创建模块,用于通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;
并行提取模块,用于并行在每一所述提取操作线程中执行一个所述静态库数据文件的提取操作。
可选的,所述编译模块,包括:
第二获取模块,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
第二创建模块,用于通过每一有名管道根据获取到的线程令牌,创建一个编译线程;
并行编译模块,用于并行在每一所述编译线程中执行所述每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
可选的,所述开发工程的数量为多个;所述编译模块,具体用于:
判断开发工程之间是否存在依赖关系;
若开发工程之间存在依赖关系,则对存在依赖关系的所有开发工程对应的源码文件串行执行终端类和模拟器类编译;
否则对每一开发工程对应的源码文件并行执行终端类和模拟器类编译。
本发明还提供一种计算机设备,所述计算机设备包括处理器和存储器;
所述处理器用于执行存储器中存储的生成静态库的程序,以实现上述的生成静态库的方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的生成静态库的方法的步骤。
采用上述技术方案,本发明至少具有下列优点:
本发明所述一种生成静态库的方法、装置、计算机设备及计算机可读存储介质,实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
附图说明
图1为本发明第一实施例所述的生成静态库的方法流程图;
图2为本发明第二实施例所述的生成静态库的方法流程图;
图3为本发明第三实施例所述的生成静态库的方法流程图;
图4为本发明第四实施例所述的生成静态库的方法流程图;
图5为本发明第五实施例所述的生成静态库的方法流程图;
图6为本发明第六和第七实施例所述的生成静态库的装置组成结构示意图;
图7为本发明第八和第十实施例所述的生成静态库的装置组成结构示意图;
图8为本发明第九实施例所述的生成静态库的装置组成结构示意图;
图9为本发明第十一实施例所述的计算机设备组成结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种生成静态库的方法,如图1所示,包括以下具体步骤:
步骤S101,对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果。
在本实施例中,对开发工程的数量不做具体限定,可以是一个,也可以是多个。
其中,在开发工程的数量为一个的情况下,步骤S101,包括:
对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到该开发工程的两个编译结果;
在开发工程的数量为多个的情况下,步骤S101,包括:
对多个开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的两个编译结果。
在本实施例中,终端类编译为将编译得到的编译结果在设定终端中运行的源码文件编译操作;模拟器类编译为将编译得到的编译结果在模拟器中运行的源码文件编译操作。
在本实施例中,在步骤S101之前还可以包括:通过分析所有开发工程,以确定需要生成静态库文件的开发工程;获取每一需要生成静态库文件的开发工程的源码和库;将每一需要生成静态库文件的开发工程的源码和库生成一个源码文件。
通过对一个或多个开发工程对应的源码文件并行执行终端类和模拟器类编译,极大地提高了开发工程对应的源码文件的编译效率,避免了分别对每一个开发工程对应的源码文件依次执行终端类和模拟器类编译,导致的效率低下,尤其避免了在对多个开发工程对应的源码文件的情况下,需要依次对每一个开发工程对应的源码文件依次执行终端类和模拟器类编译,导致编译时间过长,编译速度极端缓慢,编译效率极端低的弊端。
步骤S102,对每一开发工程的编译结果并行执行每一静态库数据文件的提取操作。
其中,静态库数据文件包括:静态库(.a库)、头文件(.h文件)和资源文件;步骤S102,具体包括:对每一开发工程的编译结果并行执行静态库(.a库)、头文件(.h文件)和资源文件的提取操作。
通过对每一开发工程的编译结果并行执行静态库数据文件(静态库(.a库)、头文件(.h文件)和资源文件)的提取操作,避免了对静态库(.a库)、头文件(.h文件)和资源文件依次提取,导致的效率低下,尤其避免了在对多个开发工程的编译结果并行执行静态库数据文件的提取操作情况下,需要依次对每一个开发工程编译结果依次执行静态库数据文件的提取操作,导致静态库数据文件的提取时间过长,静态库数据文件的提取速度极端缓慢,静态库数据文件的提取效率极端低的弊端;通过对每一开发工程的编译结果并行执行静态库数据文件的提取操作有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度。
步骤S103,将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
通过将每一开发工程对应的所有静态库数据文件(静态库(.a库)、头文件(.h文件)和资源文件)合并为一个静态库文件,实现了静态库文件的自动生成,避免了现有技术中开发人员通手动控制将每一开发工程对应的所有静态库数据文件(静态库(.a库)、头文件(.h文件)和资源文件)合并为一个静态库文件,导致的静态库文件生成效率低,速度缓慢,甚至导致静态库文件的生成错误的弊端,提高了静态库文件的生成效率和精准度。
本发明第一实施例的生成静态库的方法,通过对一个或多个开发工程对应的源码文件并行执行终端类和模拟器类编译,极大地提高了开发工程对应的源码文件的编译效率;通过对每一开发工程的编译结果并行执行静态库数据文件的提取操作有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率和精准度。
本发明第二实施例,一种生成静态库的方法,如图2所示,包括以下具体步骤:
步骤S201,对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果。
步骤S202,对每一开发工程的编译结果并行执行以下操作中的每一操作:合并在每一开发工程的编译结果中提取到的静态库,提取每一开发工程的编译结果中的头文件,以及提取每一开发工程的编译结果中的资源文件。
例如,在开发工程的数量为一个的情况下,步骤S202具体包括:对开发工程的编译结果并行执行以下操作中的每一操作:合并在该开发工程的编译结果中提取到的静态库,提取该开发工程的编译结果中的头文件,以及提取该开发工程的编译结果中的资源文件。
通过对一个开发工程的编译结果中的静态库、头文件和资源文件并行提取,避免了对一个开发工程的编译结果中的静态库、头文件和资源文件依次提取,导致的开发工程的编译结果中的静态库、头文件和资源文件提取速度缓慢,提取效率过低的缺陷,有效提高了开发工程的编译结果中的静态库、头文件和资源文件提取速度和提取效率。
例如,在开发工程的数量为多个的情况下,步骤S202具体包括:对多个开发工程中的每一开发工作的编译结果并行执行以下操作中的每一操作:合并在每一开发工程的编译结果中提取到的静态库,提取每一开发工程的编译结果中的头文件,以及提取每一开发工程的编译结果中的资源文件。
通过对多个开发工程的编译结果中的静态库、头文件和资源文件并行提取,避免了对多个开发工程中的每一开发工作的编译结果中的静态库、头文件和资源文件依次提取,导致的开发工程的编译结果中的静态库、头文件和资源文件提取速度极端缓慢,提取效率极端低的缺陷,有效提高了开发工程的编译结果中的静态库、头文件和资源文件提取速度和提取效率。实现了多个开发工程的编译结果中的静态库、头文件和资源文件的快速提取。
通过对每一开发工程的编译结果并行执行静态库数据文件(静态库(.a库)、头文件(.h文件)和资源文件)的提取操作,避免了对静态库(.a库)、头文件(.h文件)和资源文件依次提取,导致的效率低下,尤其避免了在对多个开发工程的编译结果并行执行静态库数据文件的提取操作情况下,需要依次对每一个开发工程编译结果依次执行静态库数据文件的提取操作,导致静态库数据文件的提取时间过长,静态库数据文件的提取速度极端缓慢,静态库数据文件的提取效率极端低的弊端;通过对每一开发工程的编译结果并行执行静态库数据文件的提取操作,有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度。
步骤S203,将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第二实施例的生成静态库的方法,通过对开发工程的编译结果中的静态库、头文件和资源文件并行提取,避免了对开发工程中的每一开发工作的编译结果中的静态库、头文件和资源文件依次提取,导致的开发工程的编译结果中的静态库、头文件和资源文件提取速度缓慢,提取效率低的缺陷,有效提高了开发工程的编译结果中的静态库、头文件和资源文件提取速度和提取效率。实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第三实施例,一种生成静态库的方法,如图3所示,包括以下具体步骤:
步骤S301,对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果。
步骤S302,创建设定数量的有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;并行在每一提取操作线程中执行一个静态库数据文件的提取操作。
在本实施例中,并行在每一提取操作线程中执行一个静态库数据文件的提取操作,包括:
并行在每一提取操作线程中执行以下静态库数据文件的提取操作之一:合并在每一开发工程的编译结果中提取到的静态库;提取每一开发工程的编译结果中的头文件;提取每一开发工程的编译结果中的资源文件。
例如,步骤S302具体包括:创建3个有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;并行在每一提取操作线程中执行一个静态库数据文件的提取操作;
其中,在第一提取操作线程中执行合并在每一开发工程的编译结果中提取到的静态库操作;
在第二提取操作线程中执行提取每一开发工程的编译结果中的头文件操作;
在第三提取操作线程中执行提取每一开发工程的编译结果中的资源文件操作。
通过有名管道创建3个线程,实现了通过有名管道在3个线程之间的通信;通过有名管道在3个线程之间的通信,有效提高了3线程之间的并行执行静态库数据文件的提取操作的效率。
通过有名管道创建多个线程,实现了通过有名管道在多个线程之间的通信;通过有名管道在多个线程之间的通信,有效提高了多线程之间的并行操作效率。
通过有名管道创建多个线程,以在每一线程中执行一个静态库数据文件的提取操作,实现了多个静态库数据文件的提取操作的并行执行,通过多线程的并行对多个静态库数据文件的提取操作,有效提高了静态库数据文件的提取操作的效率,进而有效提高了静态库数据文件的提取操作的速度,避免了在一个线程中依次对每一开发工程的编译结果依次执行每一静态库数据文件的提取操作,导致的静态库数据文件的提取速度缓慢,效率低的缺陷。
步骤S303,将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第三实施例的生成静态库的方法,通过有名管道创建多个线程,以在每一线程中执行一个静态库数据文件的提取操作,实现了多个静态库数据文件的提取操作的并行执行,有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第四实施例,一种生成静态库的方法,如图4所示,包括以下具体步骤:
步骤S401,创建设定数量的有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个编译线程;并行在每一编译线程中执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
例如,步骤S401,包括:创建2个有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个编译线程;并行在每一编译线程中执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作;
其中,在第一编译线程中执行每一开发工程对应的源码文件的终端类编译操作;
在第二编译线程中执行每一开发工程对应的源码文件的模拟器类编译操作。
步骤S402,创建设定数量的有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;并行在每一提取操作线程中执行一个静态库数据文件的提取操作。
步骤S403,将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第四实施例的生成静态库的方法,通过有名管道创建多个编译线程,以在每一线程中执行一个编译操作,实现了终端类和模拟器类编译操作的并行执行,通过多线程的并行执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作,有效提高了开发工程对应的源码文件的编译效率;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第五实施例,一种生成静态库的方法,如图5所示,包括以下具体步骤:
步骤S501,判断开发工程之间是否存在依赖关系;若开发工程之间存在依赖关系,则对存在依赖关系的所有开发工程对应的源码文件串行执行终端类和模拟器类编译;否则对每一开发工程对应的源码文件并行执行终端类和模拟器类编译。
其中,对每一开发工程对应的源码文件并行执行终端类和模拟器类编译,具体包括:
创建设定数量的有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个编译线程;并行在每一编译线程中执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
通过有名管道创建多个编译线程,以在每一线程中执行一个编译操作,实现了终端类和模拟器类编译操作的并行执行,有效提高了源码文件的终端类和模拟器类编译的效率。
通过判断开发工程之间是否存在依赖关系;若开发工程之间存在依赖关系,则对存在依赖关系的所有开发工程对应的源码文件串行执行终端类和模拟器类编译;否则对每一开发工程对应的源码文件并行执行终端类和模拟器类编译;在对每一开发工程对应的源码文件并行执行终端类和模拟器类编译,以提高开发工程对应的源码文件编译效率的同时避免了存在依赖关系的所有开发工程对应的源码文件并行执行终端类和模拟器类编译,导致的编译错误,进而实现了根据开发工程之间依赖关系,高效编译多个开发工程对应的源码文件。
步骤S502,创建设定数量的有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;并行在每一提取操作线程中执行一个静态库数据文件的提取操作。
通过有名管道创建多个线程,以在每一线程中执行一个静态库数据文件的提取操作,实现了多个静态库数据文件的提取操作的并行执行,有效提高了静态库数据文件的提取操作的效率。
步骤S503,将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第五实施例的生成静态库的方法,实现了根据开发工程之间依赖关系,高效编译多个开发工程对应的源码文件;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第六实施例,一种生成静态库的装置,如图6所示,包括以下组成部分:
编译模块10,用于对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果。
在本实施例中,对开发工程的数量不做具体限定,可以是一个,也可以是多个。
其中,在开发工程的数量为一个的情况下,编译模块10,用于:
对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到该开发工程的两个编译结果;
在开发工程的数量为多个的情况下,编译模块10,用于:
对多个开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的两个编译结果。
在本实施例中,终端类编译为将编译得到的编译结果在设定终端中运行的源码文件编译操作;模拟器类编译为将编译得到的编译结果在模拟器中运行的源码文件编译操作。
在本实施例中,编译模块10,还用于:通过分析所有开发工程,以确定需要生成静态库文件的开发工程;获取每一需要生成静态库文件的开发工程的源码和库;将每一需要生成静态库文件的开发工程的源码和库生成一个源码文件。
通过对开发工程对应的源码文件并行执行终端类和模拟器类编译,避免了依次对源码文件执行终端类和模拟器类编译,耗时长,速度慢,以及效率低的弊端,有效提高了源码文件的编译效率。
提取模块20,用于对每一开发工程的编译结果并行执行静态库数据文件的提取操作。
其中,静态库数据文件包括:静态库(.a库)、头文件(.h文件)和资源文件;提取模块20,具体用于:对每一开发工程的编译结果并行执行静态库(.a库)、头文件(.h文件)和资源文件的提取操作。
通过对每一开发工程的编译结果并行执行静态库数据文件(静态库(.a库)、头文件(.h文件)和资源文件)的提取操作,避免了依次对静态库(.a库)、头文件(.h文件)和资源文件依次提取,耗时长,速度慢,以及效率低的弊端,有效提高了静态库数据文件的提取操作效率。
生成模块30,用于将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
通过将每一开发工程对应的所有静态库数据文件(静态库(.a库)、头文件(.h文件)和资源文件)合并为一个静态库文件,实现了静态库文件的自动生成,提高了静态库文件的生成效率。
本发明第六实施例的生成静态库的装置,通过对一个或多个开发工程对应的源码文件并行执行终端类和模拟器类编译,极大地提高了开发工程对应的源码文件的编译效率;通过对每一开发工程的编译结果并行执行静态库数据文件的提取操作有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第七实施例,一种生成静态库的装置,如图6所示,包括以下组成部分:
编译模块10,用于对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果。
提取模块20,用于对每一开发工程的编译结果并行执行以下操作中的每一操作:合并在每一开发工程的编译结果中提取到的静态库,提取每一开发工程的编译结果中的头文件,以及提取每一开发工程的编译结果中的资源文件。
通过对每一开发工程的编译结果并行执行静态库(.a库)、头文件(.h文件)和资源文件的提取操作,避免了依次执行静态库(.a库)、头文件(.h文件)和资源文件的提取操作,耗时长,速度慢,以及效率低的弊端,有效提高了静态库(.a库)、头文件(.h文件)和资源文件提取操作的效率。
生成模块30,用于将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第七实施例的生成静态库的装置,通过对一个或多个开发工程对应的源码文件并行执行终端类和模拟器类编译,极大地提高了开发工程对应的源码文件的编译效率;通过对每一开发工程的编译结果并行执行静态库数据文件的提取操作有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第八实施例,一种生成静态库的装置,如图7所示,包括以下组成部分:
编译模块100,用于对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果。
第一获取模块200,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌。
例如,第一获取模块200,用于:创建三个有名管道,以通过每一有名管道获取线程令牌。
第一创建模块300,用于通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程。
其中,静态库数据文件包括:静态库(.a库)、头文件(.h文件)和资源文件。
并行提取模块400,用于并行在每一提取操作线程中执行一个静态库数据文件的提取操作。
在本实施例中,并行在每一提取操作线程中执行一个静态库数据文件的提取操作,包括:
并行在每一提取操作线程中执行以下操作中的一个操作:合并在每一开发工程的编译结果中提取到的静态库,提取每一开发工程的编译结果中的头文件,以及提取每一开发工程的编译结果中的资源文件。
例如,并行提取模块400,用于:并行在每一提取操作线程中执行一个静态库数据文件的提取操作;
其中,在第一提取操作线程中执行合并在每一开发工程的编译结果中提取到的静态库操作;
在第二提取操作线程中执行提取每一开发工程的编译结果中的头文件操作;
在第三提取操作线程中执行提取每一开发工程的编译结果中的资源文件操作。
通过有名管道创建多个线程,以在每一线程中执行一个静态库数据文件的提取操作,实现了多个静态库数据文件的提取操作的并行执行,有效提高了静态库数据文件的提取操作的效率。
生成模块500,用于将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第八实施例的生成静态库的装置,通过有名管道创建多个线程,以在每一线程中执行一个静态库数据文件的提取操作,实现了多个静态库数据文件的提取操作的并行执行,有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第九实施例,一种生成静态库的装置,如图8所示,包括以下组成部分:
第二获取模块101,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌。
例如,第二获取模块101,用于:创建两个有名管道,以通过每一有名管道获取线程令牌。
第二创建模块102,用于,通过每一有名管道根据获取到的线程令牌,创建一个编译线程。
并行编译模块103,用于并行在每一编译线程中执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
例如,并行编译模块103,用于:并行在每一编译线程中执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作;
其中,在第一编译线程中执行每一开发工程对应的源码文件的终端类编译操作;
在第二编译线程中执行每一开发工程对应的源码文件的模拟器类编译操作。
通过有名管道创建多个编译线程,以在每一线程中执行一个编译操作,实现了终端类和模拟器类编译操作的并行执行,有效提高了源码文件的终端类和模拟器类编译的效率。
第一获取模块104,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌。
第一创建模块105,用于通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程。
其中,静态库数据文件包括:静态库(.a库)、头文件(.h文件)和资源文件。
并行提取模块106,用于并行在每一提取操作线程中执行一个静态库数据文件的提取操作。
在本实施例中,并行提取模块106,具体用于:并行在每一提取操作线程中执行以下操作中的每一操作:合并在每一开发工程的编译结果中提取到的静态库,提取每一开发工程的编译结果中的头文件,以及提取每一开发工程的编译结果中的资源文件。
通过有名管道创建多个线程,以在每一线程中执行一个静态库数据文件的提取操作,实现了多个静态库数据文件的提取操作的并行执行,有效提高了静态库数据文件的提取操作的效率。
生成模块107,用于将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第九实施例的生成静态库的装置,通过有名管道创建多个编译线程,以在每一线程中执行一个编译操作,实现了终端类和模拟器类编译操作的并行执行,通过多线程的并行执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作,有效提高了开发工程对应的源码文件的编译效率;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第十实施例,一种生成静态库的装置,如图7所示,包括以下组成部分:
编译模块100,用于判断开发工程之间是否存在依赖关系;若开发工程之间存在依赖关系,则对存在依赖关系的所有开发工程对应的源码文件串行执行终端类和模拟器类编译;否则对每一开发工程对应的源码文件并行执行终端类和模拟器类编译。
其中,对每一开发工程对应的源码文件并行执行终端类和模拟器类编译,具体包括:
创建设定数量的有名管道,以通过每一有名管道获取线程令牌;通过每一有名管道根据获取到的线程令牌,创建一个编译线程;并行在每一编译线程中执行每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
通过有名管道创建多个编译线程,以在每一线程中执行一个编译操作,实现了终端类和模拟器类编译操作的并行执行,有效提高了源码文件的终端类和模拟器类编译的效率。
第一获取模块200,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌。
第一创建模块300,用于通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程。
其中,静态库数据文件包括:静态库(.a库)、头文件(.h文件)和资源文件。
并行提取模块400,用于并行在每一提取操作线程中执行一个静态库数据文件的提取操作。
通过有名管道创建多个线程,以在每一线程中执行一个静态库数据文件的提取操作,实现了多个静态库数据文件的提取操作的并行执行,有效提高了静态库数据文件的提取操作的效率。
生成模块500,用于将提取到的每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
本发明第十实施例的生成静态库的装置,实现了根据开发工程之间依赖关系,高效编译多个开发工程对应的源码文件;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第十一实施例,一种计算机设备,如图9所示,包括以下组成部分:
处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。
处理器501可以是通用处理器,例如中央处理器(Central Processing Unit,CPU),还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储处理器501的可执行指令;
存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器502也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-StateDrive,SSD);存储器502还可以包括上述种类的存储器的组合。
其中,处理器501用于调用存储器502存储的程序代码管理代码,执行本发明第一实施例至本发明第五实施例中任一实施例中部分或全部步骤。
本发明第十一实施例所述的计算机设备,通过对一个或多个开发工程对应的源码文件并行执行终端类和模拟器类编译,极大地提高了开发工程对应的源码文件的编译效率;通过对每一开发工程的编译结果并行执行静态库数据文件的提取操作有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度;实现了批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
本发明第十二实施例,一种计算机可读存储介质。
计算机存储介质可以是RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域已知的任何其他形式的存储介质。
计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现本发明第一实施例至本发明第五实施例中任一实施例中部分或全部步骤。
本发明第十二实施例的计算机可读存储介质,存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,通过对一个或多个开发工程对应的源码文件并行执行终端类和模拟器类编译,极大地提高了开发工程对应的源码文件的编译效率;通过对每一开发工程的编译结果并行执行静态库数据文件的提取操作有效提高了静态库数据文件的提取操作效率,以及静态库数据文件的提取速度;能够实现批量开发工程的静态库文件自动生成,有效提高了静态库文件的生成效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (12)

1.一种生成静态库的方法,其特征在于,包括:
对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果;
对所述每一开发工程的编译结果并行执行每一静态库数据文件的提取操作;
将提取到的所述每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
2.根据权利要求1所述的方法,其特征在于,所述静态库数据文件,包括:静态库、头文件和资源文件;
所述对所述每一开发工程的编译结果并行执行每一静态库数据文件的提取操作,包括:
对所述每一开发工程的编译结果并行执行以下操作中的每一操作:合并在所述每一开发工程的编译结果中提取到的静态库,提取所述每一开发工程的编译结果中的头文件,以及提取所述每一开发工程的编译结果中的资源文件。
3.根据权利要求1所述的方法,其特征在于,所述对所述每一开发工程的编译结果并行执行每一静态库数据文件的提取操作,包括:
创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;
并行在每一所述提取操作线程中执行一个所述静态库数据文件的提取操作。
4.根据权利要求1所述的方法,其特征在于,所述对开发工程对应的源码文件并行执行终端类和模拟器类编译,包括:
创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
通过每一有名管道根据获取到的线程令牌,创建一个编译线程;
并行在每一所述编译线程中执行所述每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述开发工程的数量为多个;
所述对开发工程对应的源码文件并行执行终端类和模拟器类编译,包括:
判断开发工程之间是否存在依赖关系;
若开发工程之间存在依赖关系,则对存在依赖关系的所有开发工程对应的源码文件串行执行终端类和模拟器类编译;
否则,对每一开发工程对应的源码文件并行执行终端类和模拟器类编译。
6.一种生成静态库的装置,其特征在于,包括:
编译模块,用于对开发工程对应的源码文件并行执行终端类和模拟器类编译,以得到每一开发工程的编译结果;
提取模块,用于对所述每一开发工程的编译结果并行执行每一静态库数据文件的提取操作;
生成模块,用于将提取到的所述每一开发工程对应的所有静态库数据文件合并为一个静态库文件。
7.根据权利要求6所述的装置,其特征在于,所述静态库数据文件,包括:静态库、头文件和资源文件;
所述提取模块,具体用于:对所述每一开发工程的编译结果并行执行以下操作中的每一操作:合并在所述每一开发工程的编译结果中提取到的静态库,提取所述每一开发工程的编译结果中的头文件,以及提取所述每一开发工程的编译结果中的资源文件。
8.根据权利要求6所述的装置,其特征在于,所述提取模块,包括:
第一获取模块,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
第一创建模块,用于通过每一有名管道根据获取到的线程令牌,创建一个静态库数据文件的提取操作线程;
并行提取模块,用于并行在每一所述提取操作线程中执行一个所述静态库数据文件的提取操作。
9.根据权利要求6所述的装置,其特征在于,所述编译模块,包括:
第二获取模块,用于创建设定数量的有名管道,以通过每一有名管道获取线程令牌;
第二创建模块,用于通过每一有名管道根据获取到的线程令牌,创建一个编译线程;
并行编译模块,用于并行在每一所述编译线程中执行所述每一开发工程对应的源码文件的终端类和模拟器类编译中的一个编译操作。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述开发工程的数量为多个;所述编译模块,具体用于:
判断开发工程之间是否存在依赖关系;
若开发工程之间存在依赖关系,则对存在依赖关系的所有开发工程对应的源码文件串行执行终端类和模拟器类编译;
否则,对每一开发工程对应的源码文件并行执行终端类和模拟器类编译。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;
所述处理器用于执行存储器中存储的生成静态库的程序,以实现根据权利要求1~5中任一项所述的生成静态库的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现根据权利要求1~5中任一项所述的生成静态库的方法的步骤。
CN201811140826.2A 2018-09-28 2018-09-28 生成静态库的方法、装置、计算机设备及可读存储介质 Pending CN109144521A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811140826.2A CN109144521A (zh) 2018-09-28 2018-09-28 生成静态库的方法、装置、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811140826.2A CN109144521A (zh) 2018-09-28 2018-09-28 生成静态库的方法、装置、计算机设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN109144521A true CN109144521A (zh) 2019-01-04

Family

ID=64813390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811140826.2A Pending CN109144521A (zh) 2018-09-28 2018-09-28 生成静态库的方法、装置、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN109144521A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399161A (zh) * 2019-06-14 2019-11-01 五八有限公司 一种映射关系的生成方法、调用方法及装置
CN110609788A (zh) * 2019-08-27 2019-12-24 绿漫科技有限公司 一种检测静态库冲突的自动化方法
CN111367512A (zh) * 2020-03-16 2020-07-03 北京五八信息技术有限公司 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN111966357A (zh) * 2019-05-20 2020-11-20 北京车和家信息技术有限公司 一种操作系统应用编译方法、装置及电子设备
CN112114814A (zh) * 2020-09-22 2020-12-22 北京达佳互联信息技术有限公司 编译文件确定方法及装置、应用程序生成方法及装置
CN112596734A (zh) * 2020-12-15 2021-04-02 五八同城信息技术有限公司 静态库生成方法及装置
CN112650498A (zh) * 2020-12-21 2021-04-13 北京五八信息技术有限公司 静态库集成方法、装置、电子设备及存储介质
CN113360156A (zh) * 2020-03-04 2021-09-07 武汉斗鱼鱼乐网络科技有限公司 一种ios编译方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775744A (zh) * 2016-12-28 2017-05-31 北京五八信息技术有限公司 一种生成静态库的方法和装置
CN107193544A (zh) * 2017-04-01 2017-09-22 北京五八信息技术有限公司 一种应用程序组件化开发方法及装置
CN107562429A (zh) * 2017-08-25 2018-01-09 中国科学院软件研究所 一种基于编译规则的Android系统静态划分方法
CN108021415A (zh) * 2017-12-30 2018-05-11 有米科技股份有限公司 自动打包方法、装置、计算机设备及存储介质
CN108197027A (zh) * 2017-12-29 2018-06-22 广州景派科技有限公司 软件性能优化方法、可存储介质、计算机、计算机程序

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775744A (zh) * 2016-12-28 2017-05-31 北京五八信息技术有限公司 一种生成静态库的方法和装置
CN107193544A (zh) * 2017-04-01 2017-09-22 北京五八信息技术有限公司 一种应用程序组件化开发方法及装置
CN107562429A (zh) * 2017-08-25 2018-01-09 中国科学院软件研究所 一种基于编译规则的Android系统静态划分方法
CN108197027A (zh) * 2017-12-29 2018-06-22 广州景派科技有限公司 软件性能优化方法、可存储介质、计算机、计算机程序
CN108021415A (zh) * 2017-12-30 2018-05-11 有米科技股份有限公司 自动打包方法、装置、计算机设备及存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966357A (zh) * 2019-05-20 2020-11-20 北京车和家信息技术有限公司 一种操作系统应用编译方法、装置及电子设备
CN111966357B (zh) * 2019-05-20 2024-02-27 北京车和家信息技术有限公司 一种操作系统应用编译方法、装置及电子设备
CN110399161A (zh) * 2019-06-14 2019-11-01 五八有限公司 一种映射关系的生成方法、调用方法及装置
CN110399161B (zh) * 2019-06-14 2023-08-18 五八有限公司 一种映射关系的生成方法、调用方法及装置
CN110609788A (zh) * 2019-08-27 2019-12-24 绿漫科技有限公司 一种检测静态库冲突的自动化方法
CN113360156A (zh) * 2020-03-04 2021-09-07 武汉斗鱼鱼乐网络科技有限公司 一种ios编译方法及相关设备
CN113360156B (zh) * 2020-03-04 2023-11-14 武汉斗鱼鱼乐网络科技有限公司 一种ios编译方法及相关设备
CN111367512A (zh) * 2020-03-16 2020-07-03 北京五八信息技术有限公司 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN112114814A (zh) * 2020-09-22 2020-12-22 北京达佳互联信息技术有限公司 编译文件确定方法及装置、应用程序生成方法及装置
CN112596734A (zh) * 2020-12-15 2021-04-02 五八同城信息技术有限公司 静态库生成方法及装置
CN112650498A (zh) * 2020-12-21 2021-04-13 北京五八信息技术有限公司 静态库集成方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109144521A (zh) 生成静态库的方法、装置、计算机设备及可读存储介质
CN110059009B (zh) 用于测试代码文件的方法和装置
US11055451B2 (en) System and methods for multi-language abstract model creation for digital environment simulations
US8972960B2 (en) Optimization of an application to reduce local memory usage
Krka et al. Using dynamic execution traces and program invariants to enhance behavioral model inference
US20130031531A1 (en) Method and system for performing backward-driven path-sensitive dataflow analysis
CN107168757A (zh) 一种Android端防止View控件点击抖动的方法及装置
CN105653949B (zh) 一种恶意程序检测方法及装置
CN111124479B (zh) 配置文件的解析方法、系统及电子设备
US7231626B2 (en) Method of implementing an engineering change order in an integrated circuit design by windows
Nutz et al. ULTIMATE KOJAK with Memory Safety Checks: (Competition Contribution)
CN102012988A (zh) 自动二进制恶意代码行为分析方法
JP2015103021A (ja) 制御フロー・グラフ上の実行パスの実行頻度情報を得るための方法、並びに、当該情報を得るためのコンピュータ及びそのコンピュータ・プログラム
US9396095B2 (en) Software verification
CN109284107A (zh) 应用程序配置方法、装置、计算机设备及可读存储介质
US10296700B1 (en) Multimode circuit place and route optimization
US10534878B1 (en) Circuit place and route optimization based on path-based timing analysis
CN110543353B (zh) 结合符号执行和路径模型检验的mpi程序验证方法、系统及介质
CN113031944B (zh) 基于模板的业务开通装置及方法
CN116522342A (zh) 基于字节码重写的智能合约漏洞自动化修复系统及方法
CN107506623A (zh) 应用程序的加固方法及装置、计算设备、计算机存储介质
CN104090838A (zh) 一种生成测试用例的方法
Tzevelekos et al. History-register automata
EP3506136A9 (en) Detecting stack cookie utilization in a binary software component using binary static analysis
CN114637988A (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