一种头文件的处理方法技术

技术编号:39812483 阅读:5 留言:0更新日期:2023-12-22 19:29
本申请涉及电数字数据处理技术领域,特别是涉及一种头文件的处理方法

【技术实现步骤摘要】
一种头文件的处理方法、装置、设备及介质


[0001]本专利技术涉及电数字数据处理
,特别是涉及一种头文件的处理方法

装置

设备及介质


技术介绍

[0002]对于计算平台版本升级或集成的场景,往往需要保证第二计算平台支持第一计算平台的接口功能或第一计算平台的第二版本支持第一计算平台的第一版本的接口功能,以避免出现第二计算平台不兼容第一计算平台或者第一计算平台的第二版本不兼容第一计算平台的第一版本的情况

[0003]为了判断第二计算平台是否支持第一计算平台的接口功能或第一计算平台的第二版本是否支持第一计算平台的第一版本的接口功能,现有技术的做法是直接比较第二计算平台和第一计算平台的安装包的头文件,或者直接比较第一计算平台的第二版本和第一计算平台的第一版本的安装包的头文件;但是,头文件是高级语言文件,其可能包含复杂的语法,比如其包括宏,由于宏没有在头文件中展开,直接比较头文件往往分析不到底层的程序,使得头文件的比对过程比较复杂,且容易出现比对错误的情况,进而导致判断第二计算平台是否支持第一计算平台的接口功能或第一计算平台的第二版本是否支持第一计算平台的第一版本的接口功能的过程较为复杂且判断结果容易出错


技术实现思路

[0004]本专利技术目的在于,提供一种头文件的处理方法

装置

设备及介质,以提高判断第二计算平台是否支持第一计算平台的接口功能或第一计算平台的第二版本是否支持第一计算平台的第一版本的接口功能的准确性

[0005]根据本专利技术的第一方面,提供了一种头文件的处理方法,所述处理方法包括以下步骤:获取第一头文件,使用第一编译器对所述第一头文件进行编译,得到第一编译文件

[0006]获取第一编译的
AST
文件和宏文件,将第一编译文件的
AST
文件和宏文件进行合并,得到第一合并文件,第一合并文件包括若干个第一记录,每一第一记录用于记录一个数据结构或接口函数或宏的第一预设信息,第一预设信息包括第一记录对应的数据结构或接口函数或宏的名称

[0007]获取第二合并文件,第二合并文件通过将第二编译文件的
AST
文件和宏文件合并得到,第二编译文件通过第二编译器对第二头文件编译得到;第二头文件与第一头文件属于不同的计算平台或者属于同一计算平台的不同版本,第二头文件和第一头文件的名称相同

[0008]根据第二合并文件与第一合并文件判断第二头文件是否支持第一头文件对应的接口功能

[0009]进一步的,所述第二合并文件包括若干个第二记录,每一第二记录用于记录一个数据结构或接口函数或宏的第二预设信息,所述第二预设信息包括第二记录对应的数据结构或接口函数或宏的名称

[0010]进一步的,根据第二合并文件与第一合并文件判断第二头文件是否支持第一头文件对应的接口功能包括以下步骤:获取第一名称列表,所述第一名称列表包括所述第一合并文件中的任一第一记录中的名称

[0011]获取第二名称列表,所述第二名称列表包括所述第二合并文件中的任一第二记录中的名称

[0012]遍历所述第一名称列表,如果所述第一名称列表中任一第一记录中的名称均在所述第二名称列表中存在,则判定第二头文件支持第一头文件对应的接口功能

[0013]进一步的,所述第一合并文件和第二合并文件为
json
格式

[0014]进一步的,第一编译文件的
AST
文件通过使用
clang
对所述第一编译文件进行提取得到

[0015]进一步的,第一编译文件的宏文件通过使用宏提取模块对所述第一编译文件进行提取得到

[0016]根据本专利技术的第二方面,提供了一种头文件的处理装置,所述处理装置包括:第一获取模块,用于获取第一头文件,使用第一编译器对所述第一头文件进行编译,得到第一编译文件

[0017]第二获取模块,用于获取第一编译的
AST
文件和宏文件,将第一编译文件的
AST
文件和宏文件进行合并,得到第一合并文件,第一合并文件包括若干个第一记录,每一第一记录用于记录一个数据结构或接口函数或宏的第一预设信息,第一预设信息包括第一记录对应的数据结构或接口函数或宏的名称

[0018]第三获取模块,用于获取第二合并文件,第二合并文件通过将第二编译文件的
AST
文件和宏文件合并得到,第二编译文件通过第二编译器对第二头文件编译得到;第二头文件与第一头文件属于不同的计算平台或者属于同一计算平台的不同版本,第二头文件和第一头文件的名称相同

[0019]第一判断模块,用于根据第二合并文件与第一合并文件判断第二头文件是否支持第一头文件对应的接口功能

[0020]进一步的,所述第二合并文件包括若干个第二记录,每一第二记录用于记录一个数据结构或接口函数或宏的第二预设信息,所述第二预设信息包括第二记录对应的数据结构或接口函数或宏的名称

[0021]进一步的,所述第一判断模块包括:第四获取模块,用于获取第一名称列表,所述第一名称列表包括所述第一合并文件中的任一第一记录中的名称

[0022]第五获取模块,用于获取第二名称列表,所述第二名称列表包括所述第二合并文件中的任一第二记录中的名称

[0023]第一判定模块,用于遍历所述第一名称列表,如果所述第一名称列表中任一第一记录中的名称均在所述第二名称列表中存在,则判定第二头文件支持第一头文件对应的接
口功能

[0024]进一步的,所述第一合并文件和第二合并文件为
json
格式

[0025]进一步的,第一编译文件的
AST
文件通过使用
clang
对所述第一编译文件进行提取得到

[0026]进一步的,第一编译文件的宏文件通过使用宏提取模块对所述第一编译文件进行提取得到

[0027]根据本专利技术的第三方面,提供了一种电子设备,包括存储器

处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的头文件的处理方法

[0028]根据本专利技术的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的头文件的处理方法

[0029]本专利技术与现有技术相比至少具有以下有益效果:本专利技术对于属于不同计算平台或同一计算平台的不同版本的第一头文件和第二头文件,分别使用对应的编译器对其进行编译本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种头文件的处理方法,其特征在于,所述处理方法包括以下步骤:获取第一头文件,使用第一编译器对所述第一头文件进行编译,得到第一编译文件;获取第一编译的
AST
文件和宏文件,将第一编译文件的
AST
文件和宏文件进行合并,得到第一合并文件,第一合并文件包括若干个第一记录,每一第一记录用于记录一个数据结构或接口函数或宏的第一预设信息,第一预设信息包括第一记录对应的数据结构或接口函数或宏的名称;获取第二合并文件,第二合并文件通过将第二编译文件的
AST
文件和宏文件合并得到,第二编译文件通过第二编译器对第二头文件编译得到;第二头文件与第一头文件属于不同的计算平台或者属于同一计算平台的不同版本,第二头文件和第一头文件的名称相同;根据第二合并文件与第一合并文件判断第二头文件是否支持第一头文件对应的接口功能
。2.
根据权利要求1所述的头文件的处理方法,其特征在于,所述第二合并文件包括若干个第二记录,每一第二记录用于记录一个数据结构或接口函数或宏的第二预设信息,所述第二预设信息包括第二记录对应的数据结构或接口函数或宏的名称
。3.
根据权利要求2所述的头文件的处理方法,其特征在于,根据第二合并文件与第一合并文件判断第二头文件是否支持第一头文件对应的接口功能包括以下步骤:获取第一名称列表,所述第一名称列表包括所述第一合并文件中的任一第一记录中的名称;获取第二名称列表,所述第二名称列表包括所述第二合并文件中的任一第二记录中的名称;遍历所述第一名称列表,如果所述第一名称列表中任一第一记录中的名称均在所述第二名称列表中存在,则判定第二头文件支持第一头文件对应的接口功能
。4.
根据权利要求1所述的头文件的处理方法,其特征在于,所述第一合并文件和第二合并文件为
json
格式
。5.
根据权利要求1所述的头文件的处理方法,其特征在于,第一编译文件的
AST
文件通过使用
clang
对所述第一编译文件进行提取得到
。6.
根据权利要求1所述的头文件的处理方法,其特征在于,第一编译文件的宏文件通过使用宏提取模块对所述第一编译文件进行提取得到
。7.
一种头文件的处理装置,其特征在于,所述处理装置包括:第一获取模块,用于获取第一头文件,使用第一编译器对所述第一头文件进行编译,得到第一编译文件;第二获取模块,用于获取第一编译的
AST
文件和宏文件,将第一编译文件的

【专利技术属性】
技术研发人员:严德政钟晟何军陈学凯
申请(专利权)人:沐曦集成电路杭州有限公司
类型:发明
国别省市:

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

1