一种头文件地址的获取方法、装置、电子设备及存储介质制造方法及图纸

技术编号:32215140 阅读:15 留言:0更新日期:2022-02-09 17:20
本发明专利技术提供了一种头文件地址的获取方法、装置、电子设备及存储介质。在本申请中,可以通过查找“.hmap”文件中包括的上述对应关系的方式来完成一个组件中的基于OC语言开发的源文件对另一组件中的基于OC语言开发的源文件的头文件的头文件地址的调取,而可以不使用module化的方式完成一个组件中的基于OC语言开发的源文件对另一组件中的基于OC语言开发的源文件的头文件的头文件地址的调取,从而可以避免由于module化的方式调取的过程中产生的错误,进而可以避免影响编译。进而可以避免影响编译。进而可以避免影响编译。

【技术实现步骤摘要】
一种头文件地址的获取方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种头文件地址的获取方法、装置、电子设备及存储介质。

技术介绍

[0002]国内外越来越多的应用程序实现了OC(Object

C)语言与Swift语言的混编,在混编情况下,如果应用程序的工程项目中具有:包括基于swift语言编写的源文件的组件以及基于OC语言编写的源文件的组件,则往往会对应用程序中的组件自动开启Module,也即,对应用程序中的组件Module化。
[0003]如果存在“应用程序的工程项目中的组件A中的基于Swift语言编写的源文件A”需要依赖“应用程序的工程项目中的组件B中的基于OC语言编写的源文件B”的情况,则事先需要对组件B开启module,也即,对组件B module化,且还需要在应用程序的工程项目的配置文件中设置组件A与组件B之间的依赖关系(例如,由于组件A中的源文件A依赖组件B中的源文件B,因此,组件A与组件B之间的依赖关系可以包括组件A依赖组件B)。
[0004]这样,在“应用程序的工程项目中的组件A中的基于Swift语言编写的源文件A”需要调取“应用程序的工程项目中的组件B中的基于OC语言编写的源文件B的头文件的头文件地址”时,可以使用module化的方式调取源文件B的头文件的头文件地址。
[0005]然而,由于在应用程序的工程项目的配置文件中设置了组件A与组件B之间的依赖关系,这样会使得在“应用程序的工程项目的中的组件A中的基于OC语言编写的源文件C”调取“应用程序的工程项目的中的组件B中的基于OC语言编写的源文件B的头文件的头文件地址”时,也是使用module化的方式调取应用程序的工程项目的中的组件B中的基于OC语言编写的源文件B的头文件的头文件地址。
[0006]但是,如果应用程序的工程项目中包括大量的组件,则应用程序的工程项目中的组件之间的依赖关系往往会很复杂,在这种情况下,在编译过程中,一个组件中的基于OC语言编写的源文件使用module化的方式调取其他组件中的基于OC语言编写的源文件的头文件的头文件地址的过程往往会报错,导致无法完成编译。

技术实现思路

[0007]本申请示出了一种头文件地址的获取方法、装置、电子设备及存储介质。
[0008]第一方面,本申请示出了一种头文件地址的获取方法,所述方法包括:
[0009]在编译包括多个组件的工程项目的过程中,在所述工程项目中生成HeaderMap文件,所述HeaderMap文件中包括“.hmap”文件,所述“.hmap”文件中包括:所述工程项目中的组件的源文件的头文件的头文件标识与所述工程项目中的组件的源文件的头文件的头文件地址之间的对应关系,头文件的头文件标识包括头文件所在的组件的组件名和/或头文件的头文件名;
[0010]将所述“.hmap”文件在所述工程项目中的地址分别设置在所述工程项目中的各个
组件的Header Search Path中;
[0011]在所述工程项目中包括的第一组件以及第二组件均已module化的情况下,如果所述第一组件中的基于OC语言开发的第一源文件需要调取所述第二组件中的基于OC语言开发的第二源文件的头文件的头文件地址,获取所述第二组件的组件名以及所述第二源文件的头文件的头文件名,以及,根据所述第一组件的Header Search Path中记录的所述地址在所述工程项目中查找所述“.hmap”文件;
[0012]根据所述第二组件的组件名、所述第二源文件的头文件的头文件名以及所述“.hmap”文件中的所述对应关系,获取所述第二头文件的头文件地址。
[0013]在一个可选的实现方式中,所述方法还包括:
[0014]在所述工程项目中添加了新的源文件以及所述新的源文件的头文件的情况下,可以获取所述新的源文件所在的目标组件的组件名、所述新的源文件的头文件的头文件名以及所述新的源文件的头文件的头文件地址;
[0015]在所述HeaderMap文件中包括的所述“.hmap”文件中的所述对应关系中,存储所述新的源文件的头文件的头文件标识与所述新的源文件的头文件的头文件地址,所述新的源文件的头文件的头文件标识包括所述目标组件的组件名与所述新的源文件的头文件的头文件名。
[0016]在一个可选的实现方式中,所述工程项目中的任意一个组件的Header Search Path中至少记录有所述组件在磁盘中的路径;
[0017]所述将所述“.hmap”文件在所述工程项目中的地址分别设置在所述工程项目中的各个组件的Header Search Path中,包括:
[0018]在所述任意一个组件的Header Search Path中,使用所述“.hmap”文件在所述工程项目中的地址替换所述工程项目中的多个组件在磁盘中的路径。
[0019]在一个可选的实现方式中,所述在所述工程项目中生成HeaderMap文件,包括:
[0020]基于所述工程项目中的cocoapods工具中的钩子工具,获取所述工程项目中的各个组件的组件名、各个组件中包括的各个源文件的头文件的头文件名以及头文件地址;
[0021]对于所述工程项目中的任意一个组件中的任意一个源文件,根据所述组件的组件名和/或所述源文件的头文件的头文件名生成所述源文件的头文件的头文件标识;生成包括所述源文件的头文件的头文件标识与所述源文件的头文件的头文件地址的键值对;
[0022]根据各个源文件对应的键值对在所述工程项目中生成所述HeaderMap文件。
[0023]第二方面,本申请示出了一种头文件地址的获取装置,所述装置包括:
[0024]生成模块,用于在编译包括多个组件的工程项目的过程中,在所述工程项目中生成HeaderMap文件,所述HeaderMap文件中包括“.hmap”文件,所述“.hmap”文件中包括:所述工程项目中的组件的源文件的头文件的头文件标识与所述工程项目中的组件的源文件的头文件的头文件地址之间的对应关系,头文件的头文件标识包括头文件所在的组件的组件名和/或头文件的头文件名;
[0025]设置模块,用于将所述“.hmap”文件在所述工程项目中的地址分别设置在所述工程项目中的各个组件的Header Search Path中;
[0026]第一获取模块,用于在所述工程项目中包括的第一组件以及第二组件均已module化的情况下,如果所述第一组件中的基于OC语言开发的第一源文件需要调取所述第二组件
中的基于OC语言开发的第二源文件的头文件的头文件地址,获取所述第二组件的组件名以及所述第二源文件的头文件的头文件名,以及,查找模块,用于根据所述第一组件的Header Search Path中记录的所述地址在所述工程项目中查找所述“.hmap”文件;
[0027]第二获取模块,用于根据所述第二组件的组件名、所述第二源文件的头文件的头文件名以及所述“.hmap”文件中的所述对应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种头文件地址的获取方法,其特征在于,所述方法包括:在编译包括多个组件的工程项目的过程中,在所述工程项目中生成HeaderMap文件,所述HeaderMap文件中包括“.hmap”文件,所述“.hmap”文件中包括:所述工程项目中的组件的源文件的头文件的头文件标识与所述工程项目中的组件的源文件的头文件的头文件地址之间的对应关系,头文件的头文件标识包括头文件所在的组件的组件名和/或头文件的头文件名;将所述“.hmap”文件在所述工程项目中的地址分别设置在所述工程项目中的各个组件的Header Search Path中;在所述工程项目中包括的第一组件以及第二组件均已module化的情况下,如果所述第一组件中的基于OC语言开发的第一源文件需要调取所述第二组件中的基于OC语言开发的第二源文件的头文件的头文件地址,获取所述第二组件的组件名以及所述第二源文件的头文件的头文件名,以及,根据所述第一组件的Header Search Path中记录的所述地址在所述工程项目中查找所述“.hmap”文件;根据所述第二组件的组件名、所述第二源文件的头文件的头文件名以及所述“.hmap”文件中的所述对应关系,获取所述第二头文件的头文件地址。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述工程项目中添加了新的源文件以及所述新的源文件的头文件的情况下,可以获取所述新的源文件所在的目标组件的组件名、所述新的源文件的头文件的头文件名以及所述新的源文件的头文件的头文件地址;在所述HeaderMap文件中包括的所述“.hmap”文件中的所述对应关系中,存储所述新的源文件的头文件的头文件标识与所述新的源文件的头文件的头文件地址,所述新的源文件的头文件的头文件标识包括所述目标组件的组件名与所述新的源文件的头文件的头文件名。3.根据权利要求1所述的方法,其特征在于,所述工程项目中的任意一个组件的Header Search Path中至少记录有所述组件在磁盘中的路径;所述将所述“.hmap”文件在所述工程项目中的地址分别设置在所述工程项目中的各个组件的Header Search Path中,包括:在所述任意一个组件的Header Search Path中,使用所述“.hmap”文件在所述工程项目中的地址替换所述工程项目中的多个组件在磁盘中的路径。4.根据权利要求1所述的方法,其特征在于,所述在所述工程项目中生成HeaderMap文件,包括:基于所述工程项目中的cocoapods工具中的钩子工具,获取所述工程项目中的各个组件的组件名、各个组件中包括的各个源文件的头文件的头文件名以及头文件地址;对于所述工程项目中的任意一个组件中的任意一个源文件,根据所述组件的组件名和/或所述源文件的头文件的头文件名生成所述源文件的头文件的头文件标识;生成包括所述源文件的头文件的头文件标识与所述源文件的头文件的头文件地址的键值对;根据各个源文件对应的键值对在所述工程项目中生成所述HeaderMap文件。5.一种头文件地址的获取装置,其特征在于,所述装置包括:生成模块,用于在编译包括多个组件的工程项目的过程中,在所述工程项目中生成
HeaderMap文件,所述HeaderMap文件中包括“.hmap”文...

【专利技术属性】
技术研发人员:曾庆隆彭飞邓竹立
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1