CN111581094B - 头文件名检测方法、装置、存储介质及电子设备 - Google Patents
头文件名检测方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111581094B CN111581094B CN202010381594.0A CN202010381594A CN111581094B CN 111581094 B CN111581094 B CN 111581094B CN 202010381594 A CN202010381594 A CN 202010381594A CN 111581094 B CN111581094 B CN 111581094B
- Authority
- CN
- China
- Prior art keywords
- header
- target content
- file
- header file
- error detection
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种头文件名检测方法和装置,其中,该方法包括:从本次提交的代码中提取包含引用的头文件名的目标内容;确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中;如果在当前使用的头文件库中,确定目标内容是否符合第一错误检测条件;如果符合第一错误检测条件,输出第一错误信息。本公开实施例可以实现在打包生成二进制文件之前,对本次提交的代码中引用头文件的格式进行检测,应用程序开发人员根据输出的错误信息,可以及时修改引用头文件的格式,确保二进制文件打包成功,提高了应用程序开发的效率。
Description
技术领域
本公开涉及计算机技术领域,尤其是一种头文件名检测方法、装置、计算机可读存储介质及电子设备。
背景技术
目前,在应用程序开发中,需要在代码中引用头文件,而引用头文件的方式有很多种,没有统一的规范。例如:在object-c代码中,引用头文件的方式包括import<A.h>、import<A/A.h>、import‘a.h’。在打包生成二进制文件时,如果引用头文件的格式错误,会导致打包失败。此时,通常需要人工查找错误原因。
发明内容
本公开的实施例提供了一种头文件名检测方法、装置、计算机可读存储介质及电子设备。
本公开的实施例提供了一种头文件名检测方法,该方法包括:从本次提交的代码中提取包含引用的头文件名的目标内容;确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中;如果在当前使用的头文件库中,确定目标内容是否符合第一错误检测条件;如果符合第一错误检测条件,输出第一错误信息。
在一些实施例中,第一错误检测条件为:目标内容包含预设的符号集合中的至少一个。
在一些实施例中,在确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中之后,方法还包括:如果不在当前使用的头文件库中,确定头文件名是否符合第二错误检测条件;如果符合第二错误检测条件,输出第二错误信息。
在一些实施例中,在确定头文件名是否符合第二错误检测条件之后,方法还包括:如果不符合第二错误检测条件,且目标内容包括的头文件库名不在预设配置文件中,输出第三错误信息。
在一些实施例中,第二错误检测条件为:目标内容不包含预设的符号集合中的全部。
在一些实施例中,从本次提交的代码中提取包含引用的头文件名的目标内容,包括:从本次提交的代码中提取包含引用的头文件名的语句组成的语句集合,并将语句集合输出至目标文件;对目标文件中的语句集合进行去重处理,得到去重后语句集合;将去重后语句集合中的每个语句确定为目标内容。
在一些实施例中,方法还包括:响应于确定目标文件中的目标内容均被提取过,删除目标文件。
根据本公开实施例的另一个方面,提供了一种头文件名检测装置,该装置包括:提取模块,用于从本次提交的代码中提取包含引用的头文件名的目标内容;第一确定模块,用于确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中;第二确定模块,用于如果在当前使用的头文件库中,确定目标内容是否符合第一错误检测条件;第一输出模块,用于如果符合第一错误检测条件,输出第一错误信息。
在一些实施例中,第一错误检测条件为:目标内容包含预设的符号集合中的至少一个。
在一些实施例中,装置还包括:第三确定模块,用于如果不在当前使用的头文件库中,确定头文件名是否符合第二错误检测条件;第二输出模块,用于如果符合第二错误检测条件,输出第二错误信息。
在一些实施例中,装置还包括:第三输出模块,用于如果不符合第二错误检测条件,且目标内容包括的头文件库名不在预设配置文件中,输出第三错误信息。
在一些实施例中,第二错误检测条件为:目标内容不包含预设的符号集合中的全部。
在一些实施例中,提取模块包括:提取单元,用于从本次提交的代码中提取包含引用的头文件名的语句组成的语句集合,并将语句集合输出至目标文件;去重单元,用于对目标文件中的语句集合进行去重处理,得到去重后语句集合;确定单元,用于将去重后语句集合中的每个语句确定为目标内容。
在一些实施例中,装置还包括:删除模块,用于响应于确定目标文件中的目标内容均被提取过,删除目标文件。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述头文件名检测方法。
根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述头文件名检测方法。
基于本公开上述实施例提供的头文件名检测方法、装置、计算机可读存储介质及电子设备,通过从本次提交的代码中提取包含引用的头文件名的目标内容,判断引用的头文件是否在当前使用的头文件库中,如果在当前使用的头文件库中并且头文件名符合第一错误检测条件,输出第一错误信息,从而实现了在打包生成二进制文件之前,对本次提交的代码中引用头文件的格式进行检测,应用程序开发人员根据输出的错误信息,可以及时修改引用头文件的格式,确保二进制文件打包成功,提高了应用程序开发的效率。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开所适用的系统图。
图2是本公开一示例性实施例提供的头文件名检测方法的流程示意图。
图3是本公开另一示例性实施例提供的头文件名检测方法的流程示意图。
图4是本公开又一示例性实施例提供的头文件名检测方法的流程示意图。
图5是本公开一示例性实施例提供的头文件名检测装置的结构示意图。
图6是本公开另一示例性实施例提供的头文件名检测装置的结构示意图。
图7是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
申请概述
在打包生成二进制文件时,如果引用头文件的格式错误,会导致打包失败。此时,通常需要人工查找错误原因,费时费力。
示例性系统
图1示出了可以应用本公开的实施例的头文件名检测方法或头文件名检测装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种应用,例如程序设计应用等。
终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)等等的移动终端以及诸如台式计算机等等的固定终端。
服务器103可以是提供各种服务的服务器,例如对终端设备101上的程序设计应用提供支持的后台服务器。后台服务器可以为终端设备提供各种依赖库。
需要说明的是,本公开的实施例所提供的头文件名检测方法通常由终端设备101执行,相应地,头文件名检测装置通常设置于服务器103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
示例性方法
图2是本公开一示例性实施例提供的头文件名检测方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101)上,如图2所示,该方法包括如下步骤:
步骤201,从本次提交的代码中提取包含引用的头文件名的目标内容。
在本实施例中,电子设备可以从本次提交的代码中提取包含引用的头文件名的目标内容。其中,本次提交的代码可以是电子设备获取的应用程序开发人员当前正在使用的文件(例如.c文件、.cpp文件等)中的代码,或应用程序开发人员手动选择并提交的代码。通常,包含头文件名的内容具有一定的标记。例如,在IOS组件开发的代码中,以“#import”开头的行包含引用的头文件名,这些行即为目标内容。作为示例,本次提交的代码中的某行为#import“aaa.h”,aaa.h为头文件名,该行即为目标内容。
在本实施例中,电子设备可以通过各种方式提取目标内容,例如通过shell脚本检测代码并提取目标内容。
步骤202,确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中。
在本实施例中,电子设备可以确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中。其中,当前使用的头文件库可以是用户自定义的库,也可以是应用程序开发系统自带的库。
步骤203,如果在当前使用的头文件库中,确定目标内容是否符合第一错误检测条件。
在本实施例中,如果目标内容中的头文件名指示的头文件在当前使用的头文件库中,电子设备可以确定目标内容是否符合第一错误检测条件。其中,第一错误检测条件为当头文件在当前使用的头文件库中时,表征头文件名的引用格式错误的条件。作为示例,在IOS组件化开发环境中,当头文件aaa.h在当前使用的头文件库中时,引用该头文件的格式为#import“aaa.h”。如果目标内容不是遵循该格式,则符合第一错误检测条件。
在一些可选的实现方式中,第一错误检测条件可以为:目标内容包含预设的符号集合中的至少一个。作为示例,符号集合可以包括但不限于以下至少一种符号:<、>、/。在IOS组件化开发环境中,当引用的头文件不在当前使用的头文件库中时,需要使用上述符号集合中的符号。例如,当头文件aaa.h不在当前使用的头文件库中时,引用该头文件的格式为#import<A/aaa.h>,其中,A为aaa.h所在的头文件库。如果目标内容包括符号集合中的任一个,即可以确定目标内容引用头文件的格式不正确。本实现方式通过设置符号集合,如果目标内容包括至少一个符号集合中的符号时,即确定引用头文件的格式不正确,从而可以准确地确定目标内容引用头文件的格式是否正确,提高应用程序开发的效率。
步骤204,如果符合第一错误检测条件,输出第一错误信息。
在本实施例中,如果目标内容符合第一错误检测条件,电子设备可以输出第一错误信息。其中,第一错误信息的形式可以包括但不限于以下至少一种:文字、图像、符号等。例如,第一错误信息可以为“这个头文件是本库中的,需要‘头文件.h’方式引用,请修改”。
在一些可选的实现方式中,在步骤202之后,电子设备还可以执行如下步骤:
首先,如果确定目标内容中的头文件名指示的头文件不在当前使用的头文件库中,确定头文件名是否符合第二错误检测条件。其中,第二错误检测条件为当头文件不在当前使用的头文件库中时,表征头文件名的引用格式错误的条件。作为示例,在IOS组件化开发环境中,如果当前使用的头文件库为B,头文件aaa.h在库A中,即不在当前使用的头文件库中,引用该头文件的格式为#import<A/aaa.h>。如果目标内容不是遵循该格式,则符合第二错误检测条件。
然后,如果确定符合第二错误检测条件,输出第二错误信息。其中,第二错误信息的形式可以包括但不限于以下至少一种:文字、图像、符号等。例如,第二错误信息可以为“这个头文件是其他库中的,需要<库名/头文件.h>方式引用,请修改”。
本实现方式通过设置第二错误检测条件,可以在目标内容引用的头文件不在当前使用的库中时,判断引用头文件的格式是否正确,从而进一步提高检测引用头文件的格式的准确性。
在一些可选的实现方式中,如果不符合第二错误检测条件,且目标内容包括的头文件库名不在预设配置文件中,输出第三错误信息。其中,预设配置文件用于对头文件库进行配置。作为示例,在IOS组件化开发环境中,预设配置文件可以是podspec文件,它描述了一个pod库的版本,包括有关应从何处获取源、使用什么文件、要应用的构建设置以及其他一般元数据(如其名称、版本和描述)的详细信息。通常,头文件库如果要被使用,应该首先添加到podspec中,如果头文件库名不在预设配置文件中,则该头文件库无法被使用。作为示例,目标内容包括<A/aaa.h>,即头文件aaa.h在库A中,但库A不在podspec中,则输出第三错误信息。其中,第三错误信息的形式可以包括但不限于以下至少一种:文字、图像、符号等。例如,第三错误信息可以为“该库没有被依赖,请正确依赖”。本实现方式通过在不符合第二错误检测条件,判断头文件名是否在预设配置文件中,可以确定头文件库是否被正确依赖,从而进一步提高检测引用头文件的格式的准确性。
在一些可选的实现方式中,上述第二错误检测条件可以为:目标内容不包含预设的符号集合中的全部。其中,符号集合可以与上述可选的实现方式中描述的符号集合相同。作为示例,符号集合可以包括以下符号:<、>、/。当目标内容不包括上述全部符号时,即引用头文件的格式不正确,此时符合第二错误检测条件。本实现方式通过设置符号集合,如果目标内容不包含预设的符号集合中的全部时,即确定引用头文件的格式不正确,从而可以准确地确定目标内容引用头文件的格式是否正确,提高应用程序开发的效率。
下面参考图3,其示出了头文件名检测方法的一个示例性流程图。
在步骤301中,电子设备循环读取本次提交的代码中的目标内容,针对每次读取的目标内容,执行步骤302-步骤308。
在步骤302中,电子设备确定目标内容中的头文件名是否在当前库中,如果是,执行步骤303,如果否,执行步骤305。
在步骤303中,电子设备确定目标内容是否包括<、>、/中的至少一个,如果是,执行步骤304,如果否,表示格式正确,结束。
在步骤304中,电子设备可以输出第一错误信息。
在步骤305中,电子设备确定目标内容是否包括<、>、/中的全部,如果是,执行步骤307,如果否,执行步骤306。
在步骤306中,电子设备可以输出第二错误信息。
在步骤307中,电子设备确定目标内容中的库名是否在podspec中,如果是,表示格式正确,结束。如果否,执行308。
在步骤308中,电子设备可以输出第三错误信息。
本公开的上述实施例提供的方法,通过从本次提交的代码中提取包含引用的头文件名的目标内容,判断引用的头文件是否在当前使用的头文件库中,如果在当前使用的头文件库中并且头文件名符合第一错误检测条件,输出第一错误信息,从而实现了在打包生成二进制文件之前,对本次提交的代码中引用头文件的格式进行检测,应用程序开发人员根据输出的错误信息,可以及时修改引用头文件的格式,确保二进制文件打包成功,提高了应用程序开发的效率。
进一步参考图4,示出了头文件名检测方法的又一个实施例的流程示意图。如图4所示,在上述图2所示实施例的基础上,步骤201可包括如下步骤:
步骤2011,从本次提交的代码中提取包含引用的头文件名的语句组成的语句集合,并将语句集合输出至目标文件。
在本实施例中,电子设备可以从本次提交的代码中提取包含引用的头文件名的语句组成的语句集合,并将语句集合输出至目标文件。其中,目标文件可以是各种类型的文件,例如txt文件,写字板文件等。目标文件可以是在执行本步骤前建立的,也可以是提取出语句集合后建立的。
步骤2012,对目标文件中的语句集合进行去重处理,得到去重后语句集合。
在本实施例中,电子设备可以对目标文件中的语句集合进行去重处理,得到去重后语句集合。例如,头文件A/aaa.h被多次引用,即本次提交的代码中有多个语句#import“A/aaa.h”,则可以保留其中一个语句作为去重后语句。通常,电子设备可以对上述语句集合中的语句首先进行排序,根据顺序保留相同的多个语句中的一个。
步骤2013,将去重后语句集合中的每个语句确定为目标内容。
在本实施例中,电子设备可以将去重后语句集合中的每个语句确定为目标内容。对每个去重后语句,执行后续的步骤202-步骤204。
在一些可选的实现方式中,电子设备可以响应于确定目标文件中的目标内容均被提取过,删除目标文件。即对目标文件中的每个目标内容均执行步骤202-步骤204之后,将目标文件删除,可以达到节约存储空间的目的,还可以为下次进行引用头文件格式的检测做准备。
上述图3对应实施例提供的方法,突出了将包含引用的头文件名的语句输出至目标文件,在目标文件中确定目标内容的步骤,从而无需在对每个目标内容进行检测时,从本次提交的代码中检索出来,而是将多个目标内容存储到目标文件中,直接从目标文件提取目标内容进行检测,提高了检测头文件引用格式的效率。
示例性装置
图5是本公开一示例性实施例提供的头文件名检测装置的结构示意图。本实施例可应用在电子设备上,如图5所示,头文件名检测装置包括:提取模块501,用于从本次提交的代码中提取包含引用的头文件名的目标内容;第一确定模块502,用于确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中;第二确定模块503,用于如果在当前使用的头文件库中,确定目标内容是否符合第一错误检测条件;第一输出模块504,用于如果符合第一错误检测条件,输出第一错误信息。
在本实施例中,提取模块501可以从本次提交的代码中提取包含引用的头文件名的目标内容。其中,本次提交的代码可以是电子设备获取的应用程序开发人员当前正在使用的文件(例如.c文件、.cpp文件等)中的代码,或应用程序开发人员手动选择并提交的代码。通常,包含头文件名的内容具有一定的标记。例如,在IOS组件开发的代码中,以“#import”开头的行包含引用的头文件名,这些行即为目标内容。作为示例,本次提交的代码中的某行为#import“aaa.h”,aaa.h为头文件名,该行即为目标内容。在本实施例中,电子设备可以通过各种方式提取目标内容,例如通过shell脚本检测代码并提取目标内容。
在本实施例中,第一确定模块502可以确定目标内容中的头文件名指示的头文件是否在当前使用的头文件库中。其中,当前使用的头文件库可以是用户自定义的库,也可以是应用程序开发系统自带的库。
在本实施例中,如果目标内容中的头文件名指示的头文件在当前使用的头文件库中,第二确定模块503可以确定目标内容是否符合第一错误检测条件。其中,第一错误检测条件为当头文件在当前使用的头文件库中时,表征头文件名的引用格式错误的条件。作为示例,在IOS组件化开发环境中,当头文件aaa.h在当前使用的头文件库中时,引用该头文件的格式为#import“aaa.h”。如果目标内容不是遵循该格式,则符合第一错误检测条件。
在本实施例中,如果目标内容符合第一错误检测条件,第一输出模块504可以输出第一错误信息。其中,第一错误信息的形式可以包括但不限于以下至少一种:文字、图像、符号等。例如,第一错误信息可以为“这个头文件是本库中的,需要‘头文件.h’方式引用,请修改”。
参照图6,图6是本公开另一示例性实施例提供的头文件名检测装置的结构示意图。
在一些可选的实现方式中,第一错误检测条件可以为:目标内容包含预设的符号集合中的至少一个。
在一些可选的实现方式中,该装置还可以包括:第三确定模块505,用于如果不在当前使用的头文件库中,确定头文件名是否符合第二错误检测条件;第二输出模块506,用于如果符合第二错误检测条件,输出第二错误信息。
在一些可选的实现方式中,该装置还可以包括:第三输出模块507,用于如果不符合第二错误检测条件,且目标内容包括的头文件库名不在预设配置文件中,输出第三错误信息。
在一些可选的实现方式中,第二错误检测条件可以为:目标内容不包含预设的符号集合中的全部。
在一些可选的实现方式中,提取模块501可以包括:提取单元5011,用于从本次提交的代码中提取包含引用的头文件名的语句组成的语句集合,并将语句集合输出至目标文件;去重单元5012,用于对目标文件中的语句集合进行去重处理,得到去重后语句集合;确定单元5013,用于将去重后语句集合中的每个语句确定为目标内容。
在一些可选的实现方式中,装置还包括:删除模块508,用于响应于确定目标文件中的目标内容均被提取过,删除目标文件。
本公开上述实施例提供的头文件名检测装置,通过从本次提交的代码中提取包含引用的头文件名的目标内容,判断引用的头文件是否在当前使用的头文件库中,如果在当前使用的头文件库中并且头文件名符合第一错误检测条件,输出第一错误信息,从而实现了在打包生成二进制文件之前,对本次提交的代码中引用头文件的格式进行检测,应用程序开发人员根据输出的错误信息,可以及时修改引用头文件的格式,确保二进制文件打包成功,提高了应用程序开发的效率。
示例性电子设备
下面,参考图7来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101。
图7图示了根据本公开实施例的电子设备的框图。
如图7所示,电子设备700包括一个或多个处理器701和存储器702。
处理器701可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备700中的其他组件以执行期望的功能。
存储器702可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器701可以运行程序指令,以实现上文的本公开的各个实施例的头文件名检测方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如代码文件等各种内容。
在一个示例中,电子设备700还可以包括:输入装置703和输出装置704,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是终端设备101时,该输入装置703可以是鼠标、键盘等设备,用于输入待检测文本。
该输出装置704可以向外部输出各种信息,包括错误信息。该输出设备704可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图7中仅示出了该电子设备700中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备700还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的头文件名检测方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的头文件名检测方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (14)
1.一种头文件名检测方法,包括:
从本次提交的代码中提取包含引用的头文件名的目标内容;
确定所述目标内容中的头文件名指示的头文件是否在当前使用的头文件库中;
如果在当前使用的头文件库中,确定所述目标内容是否符合第一错误检测条件;
如果符合所述第一错误检测条件,输出第一错误信息;
所述从本次提交的代码中提取包含引用的头文件名的目标内容,包括:
从所述本次提交的代码中提取包含引用的头文件名的语句组成的语句集合,并将所述语句集合输出至目标文件;
对所述目标文件中的语句集合进行去重处理,得到去重后语句集合;
将所述去重后语句集合中的每个语句确定为目标内容。
2.根据权利要求1所述的方法,其中,所述第一错误检测条件为:所述目标内容包含预设的符号集合中的至少一个。
3.根据权利要求1所述的方法,其中,在所述确定所述目标内容中的头文件名指示的头文件是否在当前使用的头文件库中之后,所述方法还包括:
如果不在当前使用的头文件库中,确定所述头文件名是否符合第二错误检测条件;
如果符合所述第二错误检测条件,输出第二错误信息。
4.根据权利要求3所述的方法,其中,在所述确定所述头文件名是否符合第二错误检测条件之后,所述方法还包括:
如果不符合所述第二错误检测条件,且所述目标内容包括的头文件库名不在预设配置文件中,输出第三错误信息。
5.根据权利要求3或4所述的方法,其中,所述第二错误检测条件为:所述目标内容不包含预设的符号集合中的全部。
6.根据权利要求1所述的方法,其中,所述方法还包括:
响应于确定所述目标文件中的目标内容均被提取过,删除所述目标文件。
7.一种头文件名检测装置,包括:
提取模块,用于从本次提交的代码中提取包含引用的头文件名的目标内容;
第一确定模块,用于确定所述目标内容中的头文件名指示的头文件是否在当前使用的头文件库中;
第二确定模块,用于如果在当前使用的头文件库中,确定所述目标内容是否符合第一错误检测条件;
第一输出模块,用于如果符合所述第一错误检测条件,输出第一错误信息;
所述提取模块包括:
提取单元,用于从所述本次提交的代码中提取包含引用的头文件名的语句组成的语句集合,并将所述语句集合输出至目标文件;
去重单元,用于对所述目标文件中的语句集合进行去重处理,得到去重后语句集合;
确定单元,用于将所述去重后语句集合中的每个语句确定为目标内容。
8.根据权利要求7所述的装置,其中,所述第一错误检测条件为:所述目标内容包含预设的符号集合中的至少一个。
9.根据权利要求7所述的装置,其中,所述装置还包括:
第三确定模块,用于如果不在当前使用的头文件库中,确定所述头文件名是否符合第二错误检测条件;
第二输出模块,用于如果符合所述第二错误检测条件,输出第二错误信息。
10.根据权利要求9所述的装置,其中,所述装置还包括:
第三输出模块,用于如果不符合所述第二错误检测条件,且所述目标内容包括的头文件库名不在预设配置文件中,输出第三错误信息。
11.根据权利要求9或10所述的装置,其中,所述第二错误检测条件为:所述目标内容不包含预设的符号集合中的全部。
12.根据权利要求7所述的装置,其中,所述装置还包括:
删除模块,用于响应于确定所述目标文件中的目标内容均被提取过,删除所述目标文件。
13.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6任一所述的方法。
14.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010381594.0A CN111581094B (zh) | 2020-05-08 | 2020-05-08 | 头文件名检测方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010381594.0A CN111581094B (zh) | 2020-05-08 | 2020-05-08 | 头文件名检测方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111581094A CN111581094A (zh) | 2020-08-25 |
CN111581094B true CN111581094B (zh) | 2023-06-23 |
Family
ID=72113407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010381594.0A Active CN111581094B (zh) | 2020-05-08 | 2020-05-08 | 头文件名检测方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111581094B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344056A (zh) * | 2018-09-07 | 2019-02-15 | 武汉达梦数据库有限公司 | 一种测试方法以及测试装置 |
CN110928797A (zh) * | 2019-11-29 | 2020-03-27 | 五八有限公司 | 一种代码耦合检测方法、装置、终端设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0706683B1 (en) * | 1993-07-01 | 2000-09-13 | BRITISH TELECOMMUNICATIONS public limited company | Apparatus and method for developping software |
US5761510A (en) * | 1995-11-07 | 1998-06-02 | Microsoft Corporation | Method for error identification in a program interface |
JP6091471B2 (ja) * | 2014-08-08 | 2017-03-08 | 三菱電機株式会社 | ソースコード解析装置、ソースコード解析方法およびソースコード解析プログラム |
US9928156B2 (en) * | 2015-10-23 | 2018-03-27 | Microsoft Technology Licensing, Llc. | Missing include suggestions for external files |
CN107643893B (zh) * | 2016-07-22 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种程序检测方法及装置 |
CN106294156B (zh) * | 2016-08-11 | 2018-12-07 | 北京邮电大学 | 一种静态代码缺陷检测分析方法及装置 |
-
2020
- 2020-05-08 CN CN202010381594.0A patent/CN111581094B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344056A (zh) * | 2018-09-07 | 2019-02-15 | 武汉达梦数据库有限公司 | 一种测试方法以及测试装置 |
CN110928797A (zh) * | 2019-11-29 | 2020-03-27 | 五八有限公司 | 一种代码耦合检测方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111581094A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111736840A (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
CN113760729B (zh) | 一种代码检测方法和装置 | |
CN111475196B (zh) | 编译告警溯源方法、装置、电子设备及计算机可读介质 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN111897778B (zh) | 一种计算机文件合并方法、装置及系统 | |
CN116755745A (zh) | 代码编辑器的插件更新方法、装置、设备及存储介质 | |
CN113094085B (zh) | 组件集成方法、装置、计算机可读存储介质及电子设备 | |
CN111581094B (zh) | 头文件名检测方法、装置、存储介质及电子设备 | |
US9990339B1 (en) | Systems and methods for detecting character encodings of text streams | |
CN111783482A (zh) | 一种文本翻译方法、装置、计算机设备及存储介质 | |
CN113076084A (zh) | 资源文件处理方法、装置、设备及存储介质 | |
CN115080114B (zh) | 应用程序的移植处理方法、装置和介质 | |
CN114090135B (zh) | 具有纠错功能且支持跨平台调用组件的方法和装置 | |
CN110543641A (zh) | 一种中外文信息对比方法及装置 | |
CN115934151A (zh) | 多端小程序构建的方法和装置 | |
CN111985235B (zh) | 文本处理方法、装置、计算机可读存储介质和电子设备 | |
CN111695327B (zh) | 一种乱码修复方法、装置、电子设备及可读存储介质 | |
US9305117B2 (en) | String generation tool | |
JP2018084939A (ja) | 修正支援プログラム、修正支援方法、修正支援装置、およびコンパイラ | |
CN109840273B (zh) | 一种文案生成方法和装置 | |
CN114490400A (zh) | 一种处理测试用例的方法和装置 | |
CN109684437B (zh) | 用于文件比较的内容对齐方法、装置、存储介质和设备 | |
CN113268617A (zh) | 论文元数据的检测方法及装置 | |
CN113408250B (zh) | 一种项目文件的处理方法和装置 | |
CN110990593A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |