一种文件编译方法及装置制造方法及图纸

技术编号:6596446 阅读:201 留言:0更新日期:2012-04-11 18:40
本申请实施例公开了一种文件编译方法及装置,所述方法包括:将待编译的源文件分割成数据文件和逻辑文件;根据预先设置的汇编规律对所述数据文件直接进行汇编转换,生成中间数据文件;对所述逻辑文件进行编译生成中间逻辑文件;将所述中间数据文件和中间逻辑文件进行合并,生成目标文件。应用本申请实施例,由于无需对数据文件进行直接编译,而是通过设置汇编规律对数据文件进行直接转换,因此提高了编译生成目标文件的速度,节约了对数据文件进行编译所耗费的时间,以及编译大量数据文件所耗费的系统资源。

【技术实现步骤摘要】

本申请涉及计算机
,特别是涉及一种文件编译方法及装置
技术介绍
编译(compilation)是把高级语言变成计算机可识别的二进制语言的过程,也就是通过编译程序将源文件转换为目标文件的过程。通常源文件指通过高级语言编写的文件,例如,高级语言可以包括Pascal、C、C++、Java等,而目标文件则为通过汇编语言或机器语言等低级语言编写的文件。现有技术中通过编译器实现从源文件到目标文件的编译过程,通常编译生成的结果数据为可执行文件,可执行文件的内容可以被计算机解释为直接运行的程序。在Windows操作系统下编写源文件的过程中,如果有文件系统的支持,例如, 采用C语言代码编写源文件时,可以有Windows下的文件系统的支持,即在编写源文件时, 可以使用fopen、fread、fclose等接口直接调用文件系统中的文件,这些文件通过调用直接链接到源文件中,通过链接文件的方式可以减少源文件的大小,提高编译速度。但是专利技术人在对现有技术的研究过程中发现,在嵌入式环境下编写的源文件,其通常难以得到文件系统的支持,即嵌入式环境下不提供调用文件资源的接口,因此如果源文件需要使用大量文件作为资源,则只能直接将文件数据写入到源文件的程序代码中,从而导致待编译的源文件较大,编译时需要花费大量时间,不仅降低了编译速度,而且编译过程也将耗费大量系统资源。
技术实现思路
本申请提供一种文件编译方法及装置,以解决现有技术中在嵌入式环境下编译包含纯数据文本的源程序代码编译时间较长,耗费系统资源的问题。为了解决上述技术问题,本申请实施例公开了如下技术方案一种文件编译方法,所述方法包括将待编译的源文件分割成数据文件和逻辑文件;根据预先设置的汇编规律对所述数据文件直接进行汇编转换,生成中间数据文件;对所述逻辑文件进行编译生成中间逻辑文件;将所述中间数据文件和中间逻辑文件进行合并,生成目标文件。还包括预先保存根据数据文件的汇编规律编写的脚本文件,所述脚本文件用于对所述数据文件进行汇编转换。所述脚本文件为通过Perl语言编写的脚本文件。所述数据文件中的数据为按照数组语法转换后的十六进制数据。所述根据预先设置的汇编规律对所述数据文件直接进行汇编转换包括分析所述数据文件,获取所述数据文件中原始数据的长度;根据所述数据文件的内容输出汇编文件的开始部分;按照汇编文件的格式输出所述数据文件中的数据部分;根据所述数据文件的内容输出汇编文件的结束部分;按照汇编文件的格式输出所述原始数据的长度,所述开始部分、数据部分、结束部分和所述原始数据的长度组成汇编文件;通过汇编程序对所述汇编文件进行转换,生成所述中间数据文件,所述中间数据文件与直接调用编译命令对所述数据文件进行编译后生成的文件一致。所述方法应用在嵌入式操作系统中。一种文件编译装置,所述装置包括分割单元,用于将待编译的源文件分割成数据文件和逻辑文件;转换单元,用于根据预先设置的汇编规律对所述数据文件直接进行汇编转换,生成中间数据文件;编译单元,用于对所述逻辑文件进行编译生成中间逻辑文件;合并单元,用于将所述中间数据文件和中间逻辑文件进行合并,生成目标文件。还包括保存单元,用于预先保存根据数据文件的汇编规律编写的脚本文件,所述脚本文件用于对所述数据文件进行汇编转换。所述转换单元包括文件分析子单元,用于分析所述数据文件,获取所述数据文件中原始数据的长度;开始部分输出子单元,用于根据所述数据文件的内容输出汇编文件的开始部分;数据部分输出子单元,用于按照汇编文件的格式输出所述数据文件中的数据部分;结束部分输出子单元,用于根据所述数据文件的内容输出汇编文件的结束部分;数据长度输出子单元,用于按照汇编文件的格式输出所述原始数据的长度,所述开始部分、数据部分、结束部分和所述原始数据的长度组成汇编文件;汇编文件转换子单元,用于通过汇编程序对所述汇编文件进行转换,生成所述中间数据文件,所述中间数据文件与直接调用编译命令对所述数据文件进行编译后生成的文件一致。所述装置应用在嵌入式操作系统中。由上述实施例可以看出,本申请实施例中将待编译的源文件分割成数据文件和逻辑文件,根据预先设置的汇编规律对数据文件直接进行汇编转换,生成中间数据文件,对逻辑文件进行编译生成中间逻辑文件,将中间数据文件和中间逻辑文件进行合并,生成目标文件。应用本申请实施例,由于无需对数据文件进行直接编译,而是通过设置汇编规律对数据文件进行直接转换,因此提高了编译生成目标文件的速度,节约了对数据文件进行编译所耗费的时间,以及编译大量数据文件所耗费的系统资源。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请文件编译方法的第一实施例流程图;图2为本申请文件编译方法的第二实施例流程图;图3为本申请文件编译装置的第一实施例框图;图4为本申请文件编译装置的第二实施例框图;图5为图4中转换单元的实施例框图。具体实施例方式本专利技术如下实施例提供了一种文件编译方法及装置,本申请实施例设置汇编规律对数据文件直接进行汇编转换,由此减少文件编译时间,提高编译速度。为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方案作进一步详细的说明。参见图1,为本申请文件编译方法的第一实施例流程图步骤101 将待编译的源文件分割成数据文件和逻辑文件。当本实施例应用在嵌入式系统下时,该数据文件中的数据为按照数组语法转换后的十六进制数据。步骤102 根据预先设置的汇编规律对数据文件直接进行汇编转换,生成中间数据文件。其中,该汇编规律可以通过预先编写的脚本文件进行保存,例如通过Perl语言编写的脚本文件。具体的,分析数据文件,获取数据文件中原始数据的长度,根据数据文件的内容输出汇编文件的开始部分,按照汇编文件的格式输出数据文件中的数据部分,根据数据文件的内容输出汇编文件的结束部分,按照汇编文件的格式输出原始数据的长度,其中开始部分、数据部分、结束部分和原始数据的长度组成汇编文件,通过汇编程序对汇编文件进行转换,生成中间数据文件,本实施例中的中间数据文件与直接调用编译命令对数据文件进行编译后生成的文件一致。步骤103 对逻辑文件进行编译生成中间逻辑文件。步骤104 将中间数据文件和中间逻辑文件进行合并,生成目标文件。在通过文件编译方法的第二实施例详细说明本申请实施例的文件编译过程之前, 首先对现有技术中的文件编译过程进行描述,并结合该描述说明本申请实施例中获取数据文件的汇编规律的过程。以C语言为例,C语言标准库中提供了文件操作函数,假设通过C语言编写的源文件的文件名为file, c,该源文件中需要加载的数据在标准库中的data, txt文件中,data, txt中的内容为字符串“test data”。现有技术中,如果要对上述源文件file, c进行编译,则可以通过执行如下程序进行实现本文档来自技高网
...

【技术保护点】
1.一种文件编译方法,其特征在于,所述方法包括:将待编译的源文件分割成数据文件和逻辑文件;根据预先设置的汇编规律对所述数据文件直接进行汇编转换,生成中间数据文件;对所述逻辑文件进行编译生成中间逻辑文件;将所述中间数据文件和中间逻辑文件进行合并,生成目标文件。

【技术特征摘要】
1.一种文件编译方法,其特征在于,所述方法包括 将待编译的源文件分割成数据文件和逻辑文件;根据预先设置的汇编规律对所述数据文件直接进行汇编转换,生成中间数据文件;对所述逻辑文件进行编译生成中间逻辑文件;将所述中间数据文件和中间逻辑文件进行合并,生成目标文件。2.根据权利要求1所述的方法,其特征在于,还包括预先保存根据数据文件的汇编规律编写的脚本文件,所述脚本文件用于对所述数据文件进行汇编转换。3.根据权利要求2所述的方法,其特征在于,所述脚本文件为通过Perl语言编写的脚本文件。4.根据权利要求1所述的方法,其特征在于,所述数据文件中的数据为按照数组语法转换后的十六进制数据。5.根据权利要求1所述的方法,其特征在于,所述根据预先设置的汇编规律对所述数据文件直接进行汇编转换包括分析所述数据文件,获取所述数据文件中原始数据的长度; 根据所述数据文件的内容输出汇编文件的开始部分; 按照汇编文件的格式输出所述数据文件中的数据部分; 根据所述数据文件的内容输出汇编文件的结束部分;按照汇编文件的格式输出所述原始数据的长度,所述开始部分、数据部分、结束部分和所述原始数据的长度组成汇编文件;通过汇编程序对所述汇编文件进行转换,生成所述中间数据文件,所述中间数据文件与直接调用编译命令对所述数据文件进行编译后生成的文件一致。6.根据权利要求1所述的方法,其特征在于,所述方法应用在嵌入式操作...

【专利技术属性】
技术研发人员:朱吕亮
申请(专利权)人:深圳市茁壮网络股份有限公司
类型:发明
国别省市:94

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

1