首页> 中国专利> 集成开发环境中的程序代码编译方法

集成开发环境中的程序代码编译方法

摘要

本发明公开了一种集成开发环境中的程序代码编译方法,包括:A.在集成开发环境中安装一个以上编译插件;B.在集成开发环境中创建配置有所述一个以上编译插件的统一编译项目类型;C.在集成开发环境中创建所述统一编译项目类型的项目,在该项目中加入程序代码,选择调用所述统一编译项目类型中配置的编译插件对所述程序代码进行编译,生成对应的二进制文件。利用本发明,可以实现在对程序代码进行编译时,减少占用集成开发环境的项目资源,提高编译效率。

著录项

  • 公开/公告号CN101122866A

    专利类型发明专利

  • 公开/公告日2008-02-13

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200710121696.3

  • 发明设计人 张炼;

    申请日2007-09-12

  • 分类号G06F9/45(20060101);

  • 代理机构11228 北京汇泽知识产权代理有限公司;

  • 代理人张颖玲

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-17 19:45:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-07

    未缴年费专利权终止 IPC(主分类):G06F9/45 授权公告日:20090506 终止日期:20160912 申请日:20070912

    专利权的终止

  • 2009-05-06

    授权

    授权

  • 2008-04-09

    实质审查的生效

    实质审查的生效

  • 2008-02-13

    公开

    公开

说明书

技术领域

本发明涉及软件程序开发技术,尤其涉及一种在集成开发环境(IDE)中的程序代码编译方法。

背景技术

目前,在软件程序开发领域,IDE平台是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。IDE平台可以独立运行,也可以和其它程序并用。例如,BASIC语言在微软系列办公软件中可以使用,比如可以在微软Word文档中编写WordBasic程序。IDE为用户使用Visual Basic、Java和PowerBuilder等现代编程语言提供了方便。

Eclipse是一种开放源代码的整合型可扩展IDE开发环境,也是目前最著名的开源项目之一。Eclipse是一个框架和一组服务系统,用于通过插件组件来构建软件的开发环境。Eclipse附带了一个标准的插件集,其中包括Java开发工具(JDT,Java Development Tools),还可以通过开发插件扩展到任何语言的开发编译。

在目前的Eclipse环境中,如果需要开发一种应用程序,需要建立专门的项目,所述项目在Eclipse中也可以称作工程,是文件和文件夹的集合,其中包括应用程序的程序代码和各种配置参数。在每套项目中,可以利用编译插件对程序代码进行编译,生成二进制文件。

对于嵌入式系统的程序代码,例如ARM手机的程序代码,既需要进行本地编译,以生成本地二进制文件在本地的仿真器中进行仿真运行;又需要进行交叉编译,以生成目标二进制文件,以在目标嵌入式系统中进行运行。

对于本地编译,Eclipse可以采用C/C++开发工具(CDT,C/C++DevelopToolkits)插件提供基于GNU操作系统编译器集(GCC,GNU CompilerCollection)的本地编译支持,可以将项目中的程序代码编译成本地二进制文件,该本地二进制文件可以在本地的仿真器中运行。

对于交叉编译,Eclipse可以采用ARM(Advanced RISC Machines Ltd.)公司提供的基于CDT的C/C++编译器(ARMCC)的交叉编译支持,可以实现将本地开发的程序代码编译成可以在目标地执行的目标二进制文件,该目标二进制文件可以在目标嵌入式ARM系统中运行。

但是,在目前的Eclipse系统中,所有的项目类型都只设置了一种编译插件,因此本地编译和交叉编译不能在同一个项目中使用。对于同一套程序代码,需要分别建立两个不同的项目,在一个项目中进行本地编译,在另一个项目中进行交叉编译。因此,这种现有技术在对程序代码进行编译时,占用的项目资源较多,且需要用户进行一个以上项目的操作,编译效率低下。

发明内容

有鉴于此,本发明所要解决的技术问题在于提供一种集成开发环境中的程序代码编译方法,从而实现在对程序代码进行编译时,减少占用集成开发环境的项目资源,提高编译效率。

为了实现上述发明目的,本发明的主要技术方案为:

一种集成开发环境中的程序代码编译方法,该方法包括:

A、在集成开发环境中安装一个以上编译插件;

B、在集成开发环境中创建配置有所述一个以上编译插件的统一编译项目类型;

C、在集成开发环境中创建所述统一编译项目类型的项目,在该项目中加入程序代码,选择调用所述统一编译项目类型中配置的编译插件对所述程序代码进行编译,生成对应的二进制文件。

优选地,所述的集成开发环境为Eclipse环境。

优选地,所述的一个以上编译插件包括:本地编译插件和交叉编译插件。

优选地,步骤C还进一步包括:接收外界输入的切换指令,根据切换指令初始化当前项目中对应编译插件的路径信息,完成不同编译插件的调用切换。

优选地,步骤B具体为:

B1、创建一个插件项目;

B2、在所创建的插件项目中创建一个项目类型,在该项目类型中配置一个以上编译插件;

B3、利用所述集成开发环境编译所述插件项目,生成对应的统一编译项目插件;

B4、将所生成的统一编译项目插件加入到所述集成开发环境中。

优选地,所述的一个以上编译插件包括:本地编译插件和交叉编译插件;并且步骤B2具体包括:

B21、将所述本地编译插件的扩展点加入所述统一编译项目;

B22、在所述扩展点上创建统一编译项目类型;

B23、在所述统一编译项目类型中分别创建本地编译插件的配置文件和交叉编译插件的配置文件;

B24、在所述每一个配置文件中分别创建一个工具链,将该工具链的超类设置为对应的编译插件。

优选地,所述的本地编译插件为C/C++开发工具CDT编译器,所述交叉编译插件为基于CDT的ARM交叉编译器。

由于本发明在集成开发环境中安装一个以上编译插件,且将一个以上编译插件的调用信息配置在一个统一编译项目类型中,用户创建统一编译项目后,就可以通过所述调用信息分别调用一个以上编译插件对该统一编译项目内的程序代码进行不同的编译操作,生成不同的二进制代码。因此,本发明可以提供统一的项目管理平台,将一个以上的编译过程整合在一个项目中实现,不必分别创建一个以上项目,从而实现在对程序代码进行编译时,减少占用集成开发环境的项目资源,提高编译效率。

本发明尤其适用于Eclipse环境中的本地编译和交叉编译,可以将本地编译和交叉编译在一个项目中实现,不必分别创建本地编译项目和交叉编译项目,节约Eclipse环境的项目资源,提高Eclipse环境的编译效率。

本发明对于嵌入式系统的程序代码的编译尤其适用,例如手机的程序代码,只需创建一个项目,既可以进行本地编译,以生成本地二进制文件在本地的仿真器中进行仿真运行;又可以进行交叉编译,以生成目标二进制文件,以在目标嵌入式系统中进行运行。节省了手机程序代码开发人员的工作时间,降低了工作强度,同时进一步降低开发成本。

附图说明

图1为本发明所述在Eclipse环境中的一种程序代码编译方法的流程图;

图2为本发明所述对统一编译项目进行本地编译和交叉编译的示意图。

具体实施方式

下面通过具体实施例和附图对本发明做进一步详细说明。

本发明的核心思想为:在集成开发环境中,安装一个以上编译插件,并创建具备一个以上编译插件调用信息的统一编译项目类型,创建所述统一编译项目类型的项目,在该项目中加入程序代码,利用所述统一编译项目类型中配置的一个以上编译插件的调用信息,分别调用对应的编译插件对所述程序代码进行编译,生成对应的二进制文件。

在以下实施例中,所述的集成开发环境为Eclipse环境,所述一个以上编译插件包括本地编译插件和交叉编译插件。

图1为本发明所述在Eclipse环境中的一种程序代码编译方法的流程图。参见图1,该流程包括:

步骤101、在计算机系统中安装Eclipse环境,在该Eclipse环境中安装一个以上编译插件,包括安装本地编译插件以及交叉编译插件。本实施例中,所述本地编译插件为CDT编译器,所述交叉编译插件为基于CDT的ARM编译器,例如ARMCC编译器、ARM-LINUX-GCC编译器、ARM-ELF-GCC编译器等等。

步骤102、打开Eclipse环境,创建插件项目(Plug-in Project),设置该插件项目的名称,假设此处的名称设置为“my”。

步骤103、将CDT编译器的扩展点org.eclipse.cdt.managedbuilder.core.buildDefintions加入“my”项目中,并在该扩展点上增加一个项目类型(projectType),对该项目类型进行命名,假设此处命名为“myprojectType”。

步骤104、在“myprojectType”项目类型下创建两个配置(configuration)文件,两个配置文件分别用于配置本地编译插件信息和交叉编译插件信息。并对所述配置文件进行命名,假设此处将用于配置本地编译插件信息的配置文件命名为“GccDebug”,将用于配置交叉编译插件信息的配置文件命名为“ArmDebug”。

步骤105、在“GccDebug”配置文件中创建一个工具链(toolChain),配置该工具链的超类为CDT编译器,此处CDT编译器的标识信息为:cdt.managedbuild.toolchain.gnu.cygwin.exe.debug,这样该工具链就能继承CDT编译器内建的GNU编译工具链(GNU debug toolchain)的所有特性,从而可以实现本地编译。并且,在“ArmDebug”配置文件中创建一个工具链,配置该工具链的超类为ARM编译器,例如此处ARM编译器的标识信息为:ARMcdt.managedbuild.toolchain.arm.executable.debug,这样该工具链就能继承ARM编译器内建的ARM编译工具链(ARM debug toolchain)的所有特性,从而可以实现目标平台的交叉编译。

在执行完步骤105后,则已经在所述“myprojectType”项目类型中成功构建了本地编译插件和交叉编译插件的配置文件。

步骤106、使用Eclipse环境编译所建立的插件项目,即“my”项目,产生对应的插件,本发明中可以将本步骤106产生的插件称为统一编译项目插件,假设此处命名为“my”插件,把该“my”插件加入到Eclipse环境,这样就在Eclipse环境中创建好了统一编译项目类型,即“my”项目类型。

步骤107、在进行具体的程序代码编译时,用户需要在Eclipse环境中创建“my”项目类型的项目,在该“my”项目中输入程序代码,从所述“my”项目类型中配置的CDT编译器以及ARM编译器的调用信息中选择当前需要的编译器的调用信息,分别调用对应的CDT编译器或ARM编译器对所述程序代码进行编译,生成对应的二进制文件。

图2为本发明所述对统一编译项目进行本地编译和交叉编译的示意图。参见图2,所述统一编译项目201中具有本地编译202和交叉编译203两个可选特性,用户可以在统一编译项目201中输入程序代码200,如果用户选择本地编译202为当前特性,则所述统一编译项目201调用本地编译插件将程序代码200编译成本地二进制文件204,如果用户选择交叉编译203为当前特性,则所述统一编译项目201调用交叉编译插件将程序代码200编译成目标二进制文件205。

所述每一个编译插件都具有对应的包容关系,其中包括本编译插件具有的特性和对应的路径信息,利用所述路径信息可以使当前的项目查找到对应的编译插件,从而实现在同一项目下不同编译插件的切换。

在利用所述统一编译项目对程序代码进行编译时,可以根据用户输入的切换指令来切换不同的编译状态,由Eclipse环境根据切换指令初始化当前统一编译项目中对应编译插件的路径信息,完成不同编译插件的调用切换。

由于现有的CDT结构中库文件部分没有考虑实现支持一个以上编译插件,为了实现在项目中进行不同编译器之间的切换,所以本发明还需对现有CDT结构的库文件进行修改,在库文件BuildConfigAction.java的运行(run)函数中增加更新包容关系ManagedBuildManager的路径目录(PathEntries)属性操作。

所述修改的库文件代码以及相关说明如下:

configs[i].setDirty(true);

//用于设置当前库文件的配置为“已经被修改”状态,这样Eclipse系

//统就会更新当前项目

int j=();

for(;j<options.length;j++){//遍列当前项目配置内的所有参数

try{

if(options[j]!=null

&& options[j].getValueType()==IOption.INCLUDE_PATH){

//如果参数属于“包含路径”类型,则调用ManagedBuildManager的

//initializePathEntries方法重新初始化路径,这样当前项目就从前一个

//编译状态切换到了当前选择的编译状态

ManagedBuildManager.initializePathEntries(configs[i],options[j]);

}

}catch(BuildException e){

//TODO Auto-generated catch block

e.printStackTrace();

}

}

configs[i].setDirty(false);//设置当前配置为“未被修改”状态

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号