[发明专利]一种生成静态库的方法和装置有效
申请号: | 201611232100.2 | 申请日: | 2016-12-28 |
公开(公告)号: | CN106775744B | 公开(公告)日: | 2021-02-23 |
发明(设计)人: | 曾庆隆 | 申请(专利权)人: | 北京五八信息技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/73 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 吴永亮 |
地址: | 100083 北京市海淀区学清*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 生成 静态 方法 装置 | ||
本发明公开了一种生成静态库的方法和装置。该方法包括:创建壳工程;在所述壳工程中集成多个子工程,在所述多个子工程中包括:未生成静态库的子工程以及所述未生成静态库的子工程调用的已生成静态库的子工程;编译所述壳工程;生成所述壳工程中所述多个子工程分别对应的静态库。本发明的工作量小,且不会发生因为子工程间可以存在相互依赖的关系而无法编译的问题。
技术领域
本发明涉及计算机技术领域,特别是涉及一种生成静态库的方法和装置。
背景技术
随着APP(Application,应用软件)业务功能的不断增多,APP的源码文件剧增,APP使用到的第三方开源代码也越来越多。但是随着源码文件的增加,APP在编译的时候就会越慢,特别是功能庞大的APP,编译速度会直接影响到开发和测试的进度,目前针对该问题有两种解决方式:
方式一,将源码文件编译成静态库,省去编译源码文件的时间。静态库是不公开的源代码,是经过编译后的二进制文件。静态库可以被完整地复制到可执行文件中。
方式二,框架复用。预先设计技术框架,在开发APP时,可以直接套用现成的一套技术架构,一般情况下,这套框架只需对外提供技术文档和静态库,不需要以源代码的方式对外提供,这样同时也保护了源码权。
现有iOS系统中有.a和.framework两种静态库。以.a静态库为例,生成静态库的方式包括:在集成开发工具XCode中,新建项目-选择“Cocoa Touch Static Library”;添加源码文件和用到的库;选择需要在头文件header中暴露(呈现)出来的.h文件;在真机iphoneos和模拟器iphonesimulator分别对源码文件进行编译并生成各自的.a文件;用lipo命令将这两个.a文件合并生成总的.a库,总的.a库再加上header中暴露出来的.h文件,即完成.a静态库的生成。
现有生成静态库的方式可以为单独的库工程生成对应的静态库,但是如果需要生成静态库的库工程数量较多,则具有以下不足之处:
1、需要为每个库工程创建一个工程文件,然后对每个库工程分别进行操作,工作量比较大,而且有些库工程是一个独立的APP,对于需要运行的应用不能再加入库工程,进而也无法进行编译。
2、如果库工程之间有相互依赖的话,同样不能编译,更不能生成静态库,如果用工具CocoaPods将依赖的工程pod(集成)进来,还是会因为访问不到主工程中的代码而无法编译;如果将依赖的工程源码加入其中,会造成最后生成的.a库有重叠的文件,而且这样做本身工作量也比较大。
3、每个库工程生成库文件前都要需要人工检查一遍对外暴露的.h文件是否有增减,在工程较多的情况下较为不便,且工作量大。
所以,在为多个库工程批量生成.a静态库时,工作量较大且在库工程之间存在直接或间接的依赖关系时,会导致不能编译的问题发生。
发明内容
本发明提供一种生成静态库的方法和装置,用以解决在为多个库工程批量生成.a静态库时,工作量较大且在库工程之间存在直接或间接的依赖关系时,会导致不能编译的问题发生。
针对上述技术问题,本发明是通过以下技术方案来解决的:
本发明提供一种生成静态库的方法,包括:创建壳工程;在所述壳工程中集成多个子工程,在所述多个子工程中包括:未生成静态库的子工程以及所述未生成静态库的子工程调用的已生成静态库的子工程;编译所述壳工程;生成所述壳工程中所述多个子工程分别对应的静态库。
其中,所述在所述壳工程中集成多个子工程,包括:根据预设的集成列表,在所述壳工程中集成未生成静态库的子工程;其中,所述集成列表中记录了通过外部参数设置的未生成静态库的子工程信息。
其中,所述编译所述壳工程,包括:在release模式下,分别在操作系统和模拟器编译所述壳工程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京五八信息技术有限公司,未经北京五八信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611232100.2/2.html,转载请声明来源钻瓜专利网。