CN107678748B - 一种源代码文件编译方法及装置 - Google Patents
一种源代码文件编译方法及装置 Download PDFInfo
- Publication number
- CN107678748B CN107678748B CN201710858365.1A CN201710858365A CN107678748B CN 107678748 B CN107678748 B CN 107678748B CN 201710858365 A CN201710858365 A CN 201710858365A CN 107678748 B CN107678748 B CN 107678748B
- Authority
- CN
- China
- Prior art keywords
- source code
- file
- code file
- compiling
- compiler
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
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)
- Devices For Executing Special Programs (AREA)
Abstract
本申请提供一种源代码文件编译方法,所述方法包括:获取编译器发出的编译错误信息;根据所述编译错误信息获取对应的源代码文件信息;在所述编译错误信息中包含预设的编译信息内容、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件;在删除源代码文件对应的编译生成文件之后,调用编译器对所述源代码文件重新进行编译。与现有技术相比,会自动重新编译发生了无法找到源代码文件依赖的头文件的错误的源代码文件,提升了编译效率。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种源代码文件编译方法及装置。
背景技术
在大型开发项目中,为方便对其中成千上万个源代码文件进行统一编译,通常做法是通过编译脚本和Makefile文件结合的方式实现编译过程,其中高级语言编译过程一般分为如下阶段:预处理、编译、汇编、链接。对源代码文件进行了预处理、编译、汇编处理过程以后生成了对象文件,链接阶段将若干个对象文件合并为一个目标文件。在类UNIX环境中,根据开发人员输入的编译参数组织该项目中各模块的编译流程,调用GCC工具(GNUCompiler Collection,编程语言编译器)对各模块的源代码文件进行编译,最终将各模块的目标文件整合为一个统一的目标文件;而Makefile文件是配合GCC工具使用的配置文件,每个模块有一个独立的Makefile文件。开发人员通过在编译脚本中调用Make命令触发编译,Make命令会在各模块目录下寻找Makefile文件并按Makefile文件中指定的规则执行该模块的编译过程。Make Clean命令则用于删除该模块上次编译生成的各级目标文件。
现有方案的问题是在于,在实际开发维护项目过程中,开发人员并不限于修改源代码文件的内容,有可能修改头文件名称,其中头文件也有可能依赖其它的头文件。当修改源代码文件中依赖的源头文件的名称时,或在源头文件中添加新的被依赖头文件时,会导致头文件依赖关系发生改变,根据Makefile文件预先指定的对象文件对源代码文件和头文件的依赖关系,则会触发对源代码文件进行重新编译,此时编译器会因找不到已修改头文件名称的源头文件,或源头文件中添加的新的被依赖头文件而发生编译错误,并向终端界面给出相应的错误信息。例如将头文件A.h依赖的头文件B.h改名为头文件C.h,或者在头文件A.h新增被依赖头文件D.h时,若依赖头文件A.h的某xx.c源代码文件并未修改,根据Makefile文件根据预先指定的对象文件对xx.c源代码文件和头文件A.h的依赖关系,则会触发对xx.c源代码文件进行重新编译,此时编译器找不到头文件B.h或头文件D.h而发生编译错误,对象文件中并没有更新头文件A.h对头文件D.h的依赖关系。
现有的技术方案是通过编译脚本对每个源代码文件,即对xx.c文件,调用编译器执行预处理命令,即对源代码文件xx.c进行初步扫描,处理注释、宏、预编译指令和头文件依赖关系,生成一级目标文件xx.d文件;经过编译阶段、汇编阶段生成二级目标文件xx.o文件,从该一级目标文件xx.d文件中获取二级目标文件xx.o文件的被依赖项作为一级目标文件xx.d文件的被依赖项,写入三级目标文件xx.dep文件中,其中二级目标文件xx.o文件的被依赖项即相应的xx.c文件及该xx.c文件直接或间接依赖的所有头文件的列表。
现有技术方案的缺点是每次进行编译时,都需要为每个xx.c文件重新执行预处理生成新的一级目标文件xx.d文件,然后根据该新的一级目标文件xx.d文件中的依赖关系判断是否需要重新编译生成对应的二级目标文件xx.o文件。虽然修改基础模块的公共头文件名称或其对其它头文件的依赖关系发生改变时对编译流程影响较大,但是这一情况毕竟发生概率不高,按照现有技术方案进行编译时,降低了每次二次编译的效率。
发明内容
有鉴于此,本发明提供一种源代码文件编译方法及装置。
具体地,本发明是通过如下技术方案实现的:
一种源代码文件编译方法,所述方法包括:
获取编译器发出的编译错误信息;
根据所述编译错误信息获取对应的源代码文件信息;
在所述编译错误信息中包含预设的编译信息内容、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件;
在删除源代码文件对应的编译生成文件之后,调用编译器对所述源代码文件重新进行编译。
一种源代码文件编译装置,所述装置包括:
编译错误信息获取单元,用于获取编译器发出的编译错误信息;
源代码文件信息获取单元,用于根据所述编译错误信息获取对应的源代码文件信息;
编译生成文件删除单元,用于在所述编译错误信息中包含预设的编译信息内容、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件;
重新编译单元,用于在删除源代码文件对应的编译生成文件之后,调用编译器对所述源代码文件重新进行编译。
本发明通过检查编译错误信息,若编译错误信息中包含找不到源代码文件依赖的头文件的错误信息,则自动执行Make Clean命令将源代码文件已生成的各级目标文件删除,然后再执行Make命令重新进行编译,此次编译相当于首次编译。与现有技术相比,会自动重新编译发生了找不到头文件的编译错误的模块,提升了编译效率。
附图说明
图1是本发明一示例性实施例示出的一种应用场景图;
图2是本发明一示例性实施例示出的源代码文件编译方法的一种实施流程图;
图3是本发明一示例性实施例示出的源代码文件对头文件的依赖关系发生改变的示意图;
图4是本发明一示例性实施例示出的源代码文件编译方法的一种优选实施流程图;
图5是本发明一示例性实施例示出的源代码文件编译装置的一种结构示意图;
图6是本发明一示例性实施例示出的源代码文件编译装置的一种优选结构示意图。
具体实施方式
首先对本发明实施例所提供的一种源代码文件编译方法进行说明,该方法可以包括以下步骤:
获取编译器发出的编译错误信息;
根据所述编译错误信息获取对应的源代码文件信息;
在所述编译错误信息中包含预设的编译信息内容、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件;
在删除源代码文件对应的编译生成文件之后,调用编译器对所述源代码文件重新进行编译。
在源代码文件编译过程中,其中对源代码文件进行的编译是非首次编译,因为用户预先可能修改了源代码文件中依赖的源头文件名称,或源头文件新增了被依赖的头文件,在对源代码文件进行非首次编译过程中,编译器会产生编译错误信息,本发明获取编译器发出的编译错误信息;从所述编译错误信息中获取对应的源代码文件信息,例如获取源代码文件的名称,可以得知是哪个源代码文件出现了编译错误;若编译错误信息中包含无法找到源代码文件依赖的头文件的错误信息,则根据所述源代码文件信息,删除源代码文件对应的编译生成文件;在删除源代码文件对应的编译生成文件之后,调用编译器对所述源代码文件重新进行编译。根据以上描述,我们可以得到一个如下图1所示的应用场景图,如图1所示现有xx1.c、xx2.c、xx3.c源代码文件,编译脚本通过获取编译器对源代码文件的编译错误信息,从编译错误信息中获取源代码文件信息,即需要知道哪个源代码文件编译出错了,若编译错误信息中包含无法找到源代码文件依赖的头文件的错误信息,则调用编译器删除源代码文件对应生成的各级目标文件,然后通过编译器对源代码文件进行重新编译。
调用编译器对所述源代码文件重新进行编译之后,若再次获取到编译器发出的编译错误信息,则停止对所述源代码文件的编译过程,若所述再次获取到的编译器发出的编译错误信息中包含无法找到源文件依赖的头文件的错误信息,则发出警告信息,所述警告信息用于提示用户所述源代码文件确实存在无法找到源文件依赖的头文件的错误。
为了使本领域技术人员更好的理解本发明中的技术方案,这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。
参照图2所示,为本发明一种源代码文件编译方法的实施流程图,其具体包括以下步骤:
S101,获取编译器发出的编译错误信息;
在背景技术中提到的高级语言编译过程一般分为如下阶段:预处理、编译、汇编、连接。预处理阶段对源代码文件进行初步扫描,处理注释、宏、预编译指令和头文件依赖关系,预处理阶段将源代码文件转换为xx.i文件;编译阶段对预处理阶段生成的xx.i文件执行编译,对每个源代码文件生成一个对应的汇编文件xx.s文件,每个汇编文件包含相应源代码文件编译生成的汇编代码;汇编阶段将汇编文件转换为机器码,生成对象文件xx.o文件;连接阶段是将同一模块的多个对象文件合并为一个目标文件。对某模块的源代码文件进行首次编译,该模块的代码目录下只有源代码文件、头文件、Makefile文件,而没有编译生成的各级目标文件;对该模块的源代码文件进行二次编译,该模块的代码目录下不仅存在源代码文件、头文件、Makefile文件,也存在编译生成的部分或全部各级目标文件。二次编译相比首次编译的不同在于二次编译会利用首次编译生成的各级目标文件,根据其中指定的源代码文件对头文件的依赖关系判断各文件的更新时间,以决定是否需要重新执行预处理、编译或链接过程。
在背景技术中提到的源代码文件对头文件的依赖关系发生改变时,会触发对源代码文件进行重新编译,此时编译器会因找不到源代码文件依赖的头文件而发生编译错误,并向终端界面给出相应的错误信息。例如如图3所示源代码文件xx.c文件依赖头文件A.h,头文件A.h依赖头文件B.h,将头文件A.h依赖的头文件B.h改名为头文件C.h,或者在头文件A.h新增被依赖头文件D.h时,若依赖头文件A.h的xx.c源代码文件并未修改,根据Makefile文件根据预先指定的对象文件对xx.c源代码文件和头文件A.h的依赖关系,则会触发对xx.c源代码文件进行重新编译,此时编译器找不到头文件B.h或头文件D.h而发生编译错误,对象文件中并没有更新头文件A.h对头文件D.h的依赖关系。这时编译器会向本发明发出编译错误信息,本发明获取编译器发出的编译错误信息。
S102,根据所述编译错误信息获取对应的源代码文件信息;
前面提到若源代码文件对头文件的依赖关系发生改变,则会触发对源代码文件进行重新编译,此时编译器会因找不到源代码文件依赖的头文件而发生编译错误,并向终端界面给出相应的错误信息,本发明通过获取编译器发出的编译错误信息,从编译错误信息中获取源代码文件对应的有关信息,例如需要知道源代码文件的名称,即需要确定哪个源代码文件编译时发成了错误。确定了源代码文件信息,相应的也就确定了根据源代码文件编译生成的各级目标文件。例如上述获取到的编译器发出的编译错误信息,从所述编译错误信息中我们可以得知发生编译错误的源代码文件是xx.c源代码文件,相应的也能确定根据xx.c源代码文件编译生成的各级目标文件,例如一级目标文件xx.d文件、二级目标文件xx.o文件、三级级目标文件xx.dep文件。
S103,在所述编译错误信息中包含预设的编译信息内容、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件;
在所述获取的编译器发出的编译错误信息中包含无法找到源代码文件依赖的头文件的错误信息、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件,即各级目标文件。意味着对源代码文件进行非首次编译出错时,若该编译错误为无法找到源代码文件依赖的头文件错误,则根据源代码文件信息删除源代码文件对应的各级目标文件。例如编译器对源代码文件xx.c进行非首次编译,可以是二次编译,源代码文件xx.c文件依赖头文件A.h,由于事先用户将头文件A.h依赖的头文件B.h改名为头文件C.h,或者在头文件A.h新增被依赖头文件D.h时,若依赖头文件A.h的xx.c源代码文件并未修改,根据Makefile文件根据预先指定的对象文件对xx.c源代码文件和头文件A.h的依赖关系,则会触发对xx.c源代码文件进行非首次编译,此时编译器找不到头文件B.h或头文件D.h而发生编译错误,本发明获取的编译错误信息中包含无法找到源代码文件xx.c依赖的头文件B.h或头文件D.h错误信息,根据源代码文件xx.c,删除源代码文件xx.c对应生成的各级目标文件,例如上述提到的一级目标文件xx.d文件、二级目标文件xx.o文件、三级级目标文件xx.dep文件。本发明通过调用编译器,执行编译器中的Make Clean命令将源代码文件xx.c已生成的各级目标文件删除。
S104,在删除源代码文件对应的编译生成文件之后,调用编译器对所述源代码文件重新进行编译。
本发明通过调用编译器,执行编译器中的Make Clean命令将源代码文件xx.c已生成的各级目标文件删除之后,通过调用编译器执行编译器中的Make命令对所述源代码文件进行重新编译,此时此次编译相当于首次编译。例如执行编译器中的Make Clean命令将源代码文件xx.c已生成的各级目标文件删除之后,执行编译器中的Make命令对源代码文件xx.c重新进行编译,因为将源代码文件xx.c对应的各级目标文件已删除,此时此次对源代码文件xx.c进行的编译就相当于是首次编译,之后如有任何编译错误发生时,本发明再次获取编译器发出的编译错误信息。
在本发明优选实施例中,可以进一步在S104之后增加再次编译错误处理机制,如图4所示。
S105,调用编译器对所述源代码文件重新进行编译之后,若再次获取到编译器发出的编译错误信息,则停止对所述源代码文件的编译过程。
在对源代码文件进行重新编译之后,若再次获取到编译器发出的编译错误信息,则停止对所述源代码文件的编译过程,记录下编译错误信息,若所述再次获取到的编译器发出的编译错误信息中包含无法找到源文件依赖的头文件的错误信息,则发出警告信息,所述警告信息用于提示用户所述源代码文件确实存在无法找到源文件依赖的头文件的错误。一般情况下,若源代码文件对头文件的依赖关系发生改变时,会触发对源代码文件进行重新编译,这时编译器发生编译错误,采用本发明技术方案会自动编译发生了找不到源代码文件依赖的头文件的编译错误的源代码文件,但是按照本发明的技术方案删除源代码文件对应的已生成的各级目标文件之后,对源代码文件进行重新编译时再次发生了编译错误,而且编译错误为无法找到源代码文件依赖的头文件的错误,则发出警告信息,警告信息用于提示用户所述源代码文件确实存在无法找到源文件依赖的头文件的错误。因为第一次对这种无法找到源代码文件依赖的头文件的错误进行处理时,并不确定该错误是因为源代码文件对头文件的依赖关系发生改变了而触发的,还是因为在对源代码文件编译过程中,没有将该头文件加进来而触发的。
假设对源代码文件xx.c编译错误时,编译错误为无法找到源代码文件xx.c依赖的头文件A.h,采用本发明技术方案会自动重新编译该源代码文件,若对源代码文件重新编译成功,则可以认为是源代码文件xx.c对头文件A.h的依赖关系发生了改变;若对源代码文件重新编译失败,再次获取的编译错误信息中包含无法找到源代码文件xx.c依赖的头文件A.h错误信息,则可以认为是在对源代码文件xx.c编译过程中,没有将该头文件A.h加进来而触发的,停止对源代码文件xx.c的编译过程,提醒用户修改源代码文件解决该错误。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
与前述一种源代码文件编译方法实施流程图相对应,本发明还提供了一种源代码文件编译装置实施例。参照图5所示,包括编译错误信息获取单元210、源代码文件信息获取单元220、编译生成文件删除单元230、重新编译单元240。
所述编译错误信息获取单元210,用于获取编译器发出的编译错误信息,并将获取到的编译错误信息发送给源代码文件信息获取单元220;
所述源代码文件信息获取单元220,用于根据所述编译错误信息获取对应的源代码文件信息,并将获取到的源代码文件信息发送给编译生成文件删除单元230;
所述编译生成文件删除单元230,用于在所述编译错误信息中包含预设的编译信息内容、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件;
所述重新编译单元240,用于在删除源代码文件对应的编译生成文件之后,调用编译器对所述源代码文件重新进行编译。
在本发明的一种具体实施方式中,所述编译生成文件删除单元230具体可以用于:
在所述编译错误信息中包含无法找到源文件依赖的头文件的错误信息、且所述编译错误信息是对所述源代码文件进行非首次编译所产生的编译错误信息的情况下,根据所述源代码文件信息,删除源代码文件对应的编译生成文件。
在本发明的一种具体实施方式中,所述重新编译单元240还可以用于:
调用编译器对所述源代码文件重新进行编译之后,若再次获取到编译器发出的编译错误信息,则停止对所述源代码文件的编译过程。
参照图6所示,本发明实施例所提供的源代码文件编译装置还可以包括:
警告单元250,用于若所述再次获取到的编译器发出的编译错误信息中包含无法找到源文件依赖的头文件的错误信息,则发出警告信息,所述警告信息用于提示用户所述源代码文件确实存在无法找到源文件依赖的头文件的错误。
上述***中各个单元的作用实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于***实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明可以在由计算机执行的计算值可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种源代码文件编译方法,其特征在于,应用于包含多个源代码文件的开发项目中,针对每个源代码文件,编译器针对该源代码文件进行首次编译时,基于该源代码文件与该源文件对头文件的依赖关系,生成该源代码文件对应的编译生成文件;针对任一源代码文件,若该源代码文件的头文件名称改变或该源代码文件被添加新的头文件,使得该源代码文件对头文件的依赖关系发生改变,则触发所述编译器针对该源代码文件进行二次编译,针对该源代码文件的二次编译是根据该源代码文件对应的编译生成文件进行的,所述方法包括:
获取所述编译器进行二次编译时发出的编译错误信息;
根据所述编译错误信息包含的无法找到源文件依赖的头文件的错误信息,确定出错的源代码文件;
删除所述出错的源代码文件对应的编译生成文件;
调用编译器对所述出错的源代码文件重新进行首次编译。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
调用编译器对所述出错的源代码文件重新进行首次编译之后,若再次获取到编译器发出的编译错误信息,则停止对所述源代码文件的编译过程。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述再次获取到的编译器发出的编译错误信息中包含无法找到源文件依赖的头文件的错误信息,则发出警告信息,所述警告信息用于提示用户所述源代码文件确实存在无法找到源文件依赖的头文件的错误。
4.一种源代码文件编译装置,其特征在于,应用于包含多个源代码文件的开发项目中,针对每个源代码文件,编译器针对该源代码文件进行首次编译时,基于该源代码文件与该源文件对头文件的依赖关系,生成该源代码文件对应的编译生成文件;针对任一源代码文件,若该源代码文件的头文件名称改变或该源代码文件被添加新的头文件,使得该源代码文件对头文件的依赖关系发生改变,则触发所述编译器针对该源代码文件进行二次编译,针对该源代码文件的二次编译是根据该源代码文件对应的编译生成文件进行的,所述装置包括:
编译错误信息获取单元,用于获取所述编译器进行二次编译时发出的编译错误信息;
源代码文件信息获取单元,用于根据所述编译错误信息包含的无法找到源文件依赖的头文件的错误信息,确定出错的源代码文件;
编译生成文件删除单元,用于删除所述出错的源代码文件对应的编译生成文件;
重新编译单元,用于调用编译器对所述出错的源代码文件重新进行编译。
5.根据权利要求4所述的装置,其特征在于,所述重新编译单元还用于:
调用编译器对所述出错的源代码文件重新进行首次编译之后,若再次获取到编译器发出的编译错误信息,则停止对所述源代码文件的编译过程。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:警告单元;
所述警告单元,用于若所述再次获取到的编译器发出的编译错误信息中包含无法找到源文件依赖的头文件的错误信息,则发出警告信息,所述警告信息用于提示用户所述源代码文件确实存在无法找到源文件依赖的头文件的错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710858365.1A CN107678748B (zh) | 2017-09-21 | 2017-09-21 | 一种源代码文件编译方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710858365.1A CN107678748B (zh) | 2017-09-21 | 2017-09-21 | 一种源代码文件编译方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107678748A CN107678748A (zh) | 2018-02-09 |
CN107678748B true CN107678748B (zh) | 2020-05-12 |
Family
ID=61136714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710858365.1A Active CN107678748B (zh) | 2017-09-21 | 2017-09-21 | 一种源代码文件编译方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107678748B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614106B (zh) * | 2018-12-21 | 2022-04-19 | 北京龙创悦动网络科技有限公司 | 一种c++程序编译方法和装置 |
CN109740127B (zh) * | 2019-01-08 | 2023-05-26 | 武汉益模科技股份有限公司 | 一种基于三维模型的无序拆装方法 |
CN109918082B (zh) * | 2019-03-06 | 2022-02-22 | 驿涛科技股份有限公司 | 软件开发的编译***及方法 |
CN110377276B (zh) * | 2019-07-19 | 2023-05-23 | 潍柴动力股份有限公司 | 源代码文件管理方法及设备 |
CN110908666B (zh) * | 2019-10-31 | 2022-03-22 | 北京浪潮数据技术有限公司 | 一种源代码共享管理方法、装置、设备及计算机存储介质 |
WO2021142763A1 (zh) * | 2020-01-17 | 2021-07-22 | 上海渠杰信息科技有限公司 | 一种自动识别编译失败原因并重启编译的方法 |
CN111475196B (zh) * | 2020-03-30 | 2023-12-12 | 杭州迪普信息技术有限公司 | 编译告警溯源方法、装置、电子设备及计算机可读介质 |
CN112631599B (zh) * | 2020-12-09 | 2024-03-19 | 潍柴动力股份有限公司 | 编译方法、装置和存储介质 |
CN114035805A (zh) * | 2021-11-16 | 2022-02-11 | 北京字节跳动网络技术有限公司 | 用于预编译器的代码转换方法、装置、介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799437A (zh) * | 2012-07-18 | 2012-11-28 | 清华大学 | 一种编译脚本自动生成方法和自动生成装置 |
KR20130063757A (ko) * | 2011-12-07 | 2013-06-17 | 한국과학기술연구원 | 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체 |
CN105335137A (zh) * | 2014-07-23 | 2016-02-17 | 国际商业机器公司 | 用于处理源文件的方法和装置 |
-
2017
- 2017-09-21 CN CN201710858365.1A patent/CN107678748B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130063757A (ko) * | 2011-12-07 | 2013-06-17 | 한국과학기술연구원 | 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체 |
CN102799437A (zh) * | 2012-07-18 | 2012-11-28 | 清华大学 | 一种编译脚本自动生成方法和自动生成装置 |
CN105335137A (zh) * | 2014-07-23 | 2016-02-17 | 国际商业机器公司 | 用于处理源文件的方法和装置 |
Non-Patent Citations (1)
Title |
---|
"Makefile经典教程(一个很棒很清晰的讲解)";Seven_Amber;《CSDN》;20170417;第1-5、11-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107678748A (zh) | 2018-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107678748B (zh) | 一种源代码文件编译方法及装置 | |
US8996349B2 (en) | Synchronizing an abstract model and source code | |
US9971672B2 (en) | Using emulation to disassociate verification from stimulus in functional test | |
JP5396979B2 (ja) | ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
US20200034282A1 (en) | Object-oriented regression-candidate filter | |
CN110673837B (zh) | 代码修复方法及装置、电子设备、计算机可读存储介质 | |
CN113342323B (zh) | 软件在线开发的方法及装置 | |
US8479177B2 (en) | Attribute based method redirection | |
CN112419057A (zh) | 智能合约的日志生成及保存方法、装置、设备和存储介质 | |
Fazzini et al. | Apimigrator: an api-usage migration tool for android apps | |
CN113535141A (zh) | 数据库操作代码的生成方法及装置 | |
CN114115884B (zh) | 一种编程服务的管理方法以及相关装置 | |
CN106909434B (zh) | 可执行程序中未定义函数的检测方法及装置 | |
CN108304164B (zh) | 一种业务逻辑的开发方法及开发*** | |
CN114721647B (zh) | 一种基于无代码应用开发的面向对象编程方法 | |
CN110750310A (zh) | 基于ios***组件化开发的二进制和源码切换方法 | |
CN107451050B (zh) | 函数获取方法和装置、服务器 | |
US9389838B2 (en) | Method for creating a computer software compiler for client server computing | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN112882720B (zh) | 一种编译方法及装置 | |
Wu | Modeling framework API evolution as a multi-objective optimization problem | |
CN116955104A (zh) | 自动埋点方法、装置、电子设备和可读存储介质 | |
CN114327396A (zh) | 脱离源码编译环境开发Andriod***应用的方法 | |
CN114546366A (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 |