一种集成开发环境中工具链转换扩展方法

文档序号:6376885阅读:195来源:国知局
专利名称:一种集成开发环境中工具链转换扩展方法
一种集成开发环境中工具链转换扩展方法
技术领域
本发明涉及一种软件工程的集成开发环境领域,特别是可以优化完善集成开发环境的工具链转换扩展方法。
背景技术
目前软件工程中常用集成开发环境(IDE, Integrated DevelopmentEnviixmment)进行开发工作。IDE通常由一个工程管理器、代码编辑器、图形界面、以及一套用于实现编译链接的工具链组成。在IDE中开发软件时,开发人员通过图形界面的菜单命令或者工具栏按钮等方式启动调用编译工具链实现代码的编译链接过程。一款IDE产品中,能够实现的编译链接功能基本由IDE配套的工具链决定,IDE能够支撑的软件源文件也基本由IDE工程管理程序和工具链共同决定。部分IDE,例如Visual Studio,Eclipse等,·提供插件开发框架,可以供第三方添加新的功能。但是这种途径添加新功能需要学习IDE插件接口框架,有的IDE接口框架还规定了特殊的语言环境,因此学习开发的成本很高。部分IDE,例如Code Blocks等,除提供插件开发框架外,还通过开源的方式,允许第三方修改IDE的功能。但是这种途径需要开发人员学习了解IDE的整体代码和开发环境,学习成本更高。另有部分IDE,例如Generalplus IDE、MAX_IDE等,由于是部分厂家针对自身产品开发的,没有预留任何扩展的接口。因此,在现有的技术条件下,要扩展或修改IDE对软件源文件和编译链接行为,其技术门槛比较高,技术难度也比较大,实现方法的通用性也比较差。

发明内容本发明要解决的技术问题,在于提供一种集成开发环境中工具链转换扩展方法,实现的IDE工具链的转换扩展,开发实现的技术代价小,方案可以在多种IDE上通用,并且可以有效保留原IDE和工具链的优良特性。本发明是这样实现的一种集成开发环境中工具链转换扩展方法,首先创建IDE原始工具链文件副本,再用工具链转换扩展执行程序替换该IDE中的原始工具链程序;然后由开发人员通过IDE启动某个源文件的编译链接过程,在该编译链接过程中由所述工具链转换扩展执行程序完成编译链接功能的扩展转换处理。本发明的所述工具链转换扩展执行程序完成扩展转换处理的具体步骤如下步骤
I、当某个源文件的编译链接过程起始后,IDE首先启动工具链转换扩展执行程序,并传入源文件、调用命令和参数数据;步骤2、工具链转换扩展执行程序接收源文件、调用命令并分析参数数据;步骤3、接着,工具链转换扩展执行程序创建一套进程输入输出控制环境;步骤4、并以所述进程输入输出控制环境,调用原始工具链文件副本中的原工具链程序对所述源文件、调用命令和参数数据进行执行处理;步骤5、最终的处理结果返回给IDE前端进行显示和处理。本发明还可包括配置信息步骤如果具体实现方案中有配置数据的需求,则工具链转换扩展执行程序读取配置数据;且该配置信息步骤在整个流程中任意不同位置或者任意同一位置,并被执行一次或多次。其中,所述步骤2和步骤3之间还可包括步骤21、工具链转换扩展执行程序判断待编译或链接的源文件内容和格式是否是自定义的文件,若是,则运行自处理过程,然后进入步骤5 ;若否,则判断为·待编译或链接的源文件是常规文件,先根据需求执行编译或链接前的可选的预处理过程。其中,所述步骤21和步骤3之间还可包括步骤22、工具链转换扩展执行程序根据目标环境转换输入的调用命令和参数数据;并在所述步骤4中调用原始工具链文件副本中的原工具链程序所执行处理的调用命令和参数数据为经该步骤22转换后的调用命令和参数数据。其中,所述步骤4和步骤5之间还包括步骤41、原始工具链文件副本中的原工具链程序的执行处理完成后,工具链转换扩展执行程序再根据需求,对目标数据文件进行可选的后处理。其中,本发明根据具体IDE环境对编译和链接的处理过程差异,上述的运行流程可以在一次编译、链接的过程中,被执行I次或多次。本发明具有如下优点I、本发明工具链转换扩展技术是利用了通用的进程间通讯技术,例如管道通信技术,在IDE和原工具链之间加增了一个工具链转换扩展执行程序作为功能和数据的中间转换层,以实现工具链行为的变更和扩展效果。所以,该技术的实现方法,不依赖于具体的IDE架构,不依赖于具体的IDE扩展框架,能够适用于多种IDE环境,增加技术方案的使用工具的适用场合。2、工具链转换扩展技术是利用了通用的进程间通讯技术实现的。进程间通讯技术,例如管道通信技术,是现代操作系统上的通用技术,与开发编程语言无关,与具体IDE和工具链的架构无关,与具体IDE和工具链的开发工具无关。因此,该技术方案的实施无须学习某种特定框架、无须学习某种特殊语言,无须学习某种特定开发工具,实施的技术成本就很低,可以有效提高IDE工具链行为扩展和改造的开发速度。3、由于工具链转换扩展技术是在IDE和原工具链之间加增了一个工具链转换扩展执行程序作为功能和数据的中间转换层,对于IDE而言,其向下和工具链之间的通信调度的变更是透明的,不会被察觉;对于原工具链而言,其向上的和IDE之间的通信调度的变更也是透明的,不会被察觉。因此,IDE和原工具链仍然可以按照转换扩展之前的流程工作,其效果和性能不会受到影响。所以,本发明实现的工具链转换和扩展,能够有效保持原IDE和工具链的优良功能和特性。4、由于工具链转换扩展技术的基本思路是在IDE和原工具链之间加增一个中间转换层,具体转换和扩展的行为由转换层自行实现。因此,利用该记录,既能实现对源文件编译、链接前的预处理,也能实现对源文件编译、链接后的再处理,还可以通过中间层识别出特定格式的源文件,进行自行定义的编译链接处理。此外,也能实现上述多种转换和扩展效果的组合处理。所以,该技术方案应用后可转换和扩展出的功能很多,可得到的效果很丰
邑O
下面参照附图结合实施例对本发明作进一步的说明。图I为本发明方法的软件模块与IDE环境的结构关系图。图2为本发明方法执行流程图。
具体实施方式在Windows系统环境中,IDE调用工具链程序基本上都是通过管道通信技术的方式来实现的。本发明的集成开发环境中工具链转换扩展方法,首先创建IDE原始工具链文件副本,再用工具链转换扩展执行程序替换该IDE中的原始工具链程序;然后由开发人员通过IDE启动某个源文件的编译链接过程,在该编译链接过程中由所述工具链转换扩展执行程序完成编译链接功能的扩展转换处理。
如图I所示,本发明的软件架构主要由工具链转换扩展执行程序集602和配置信息集604组成。将本发明安装集成进IDE环境后,IDE前端601、原工具链执行程序集603、以及本发明之间的结构关系如图I的箭头所示。图中实线表征了调用关系和调用命令及数据的流向,箭头指向的为被调用方,即调用命令以及数据的送达方。图中虚线表征了反馈数据的流向,箭头指向的为反馈数据的送达方。原工具链执行程序集603是IDE原配工具链可执行程序文件的集合。其中包括I个或多个可执行程序、动态链接库、以及各种数据文件。原工具链执行程序集603中有I个或多个文件被修改为IDE前端不能自动调用的形式。该修改可以通过文件重命名、移动文件路径等I种或多种方式来实现。这种修改便是创建原始工具链文件副本的一种具体形式。工具链转换扩展执行程序集602是工具链转换扩展可执行程序文件的集合。其中包括I个或多个可执行程序、动态连接库、以及各种数据文件。工具链转换扩展执行程序集602中有I个或多个文件,通过重命名和修改路径等I种或多种方式,修改为可以被IDE前端识别为原配工具链可执行程序文件且能被IDE前端自动调用的文件形式。工具链转换扩展执行程序集602中被修改的这些文件,必须能够在数量、文件路径、文件名上取代原工具链执行程序集603中被修改了文件名或文件路径的文件。配置信息集604是工具链转换扩展的配置信息集合。配置信息集604部分用于指导工具链转换扩展执行程序集602中程序的运行行为。这种指导内容包括但不局限于指导工具链转换扩展执行程序集602中的程序识别特殊的源文件格式、指导工具链转换扩展执行程序集602中的程序调用某个具体的原工具链文件、指导工具链转换扩展执行程序集602中的程序对编译前的源文件做指定的预处理、指导工具链转换扩展执行程序集602中的程序对编译后的目标文件做再处理、指导工具链转换扩展执行程序集602中的程序组织对原工具链程序进行调用时的控制命令,等等。配置信息集604属于可选组成部分,针对具体需求的IDE工具链转换扩展方案中,可以修改、更换、或者取消对配置信息集604部分的设计。当采用配置信息集604部分的设计时,配置信息集604可以以注册表数据、配置文件、命令行参数等形式出现,但不局限于这些形式。再结合图2所示,本发明的一实施例的具体步骤如下运行的起始时机是开发人员通过IDE前端的菜单命令、或者工具栏按钮、或者具体IDE特定的操作方法,激发对源文件的编译和链接工作的时候。步骤I、当某个源文件的编译链接过程起始后,IDE首先启动工具链转换扩展执行程序,并传入源文件、调用命令和参数数据。步骤2、工具链转换扩展执行程序接收源文件、调用命令并分析参数数据。该步骤一般是通过管道通信实现,但不局限于管道通信,具体的通信方式由具体的IDE环境决定。该步骤的通信在具体 开发环境中可能被描述为不同的专业术语。例如,在C语言中可以是标准输入输出文件,在C++中可以是标准输入输出流等等。配置数据步骤如果具体实现方案中有配置数据的需求,则工具链转换扩展执行程序读取配置数据;且该配置信息步骤在整个流程中任意位置或者同一位置,并被执行一次或多次。即该配置数据步骤是可选的。若本发明的具体实施过程中不存在图I中的配置信息集604部分,则该配置数据步骤可以取消。当存在该配置数据步骤的时候,其运行的时机并不局限在这个位置,实施人员可以根据需要调整其在整个流程中的位置。同时,该步骤并不一定是唯一执行一次,根据具体需求,实施人员可以在整个流程中在不同位置或者同一位置多次被执行。步骤21、工具链转换扩展执行程序判断待编译或链接的源文件内容和格式是否是自定义的文件,若是,则运行自处理过程,然后进入步骤5 ;若否,则判断为待编译或链接的源文件是常规文件,先根据需求执行编译或链接前的预处理过程。该步骤是可选的。若本发明的具体实施过程中不存在对源文件的特殊定义和处理,则可以取消该步骤。其中自处理过程的具体处理并不做特别限定,可以由实施人员根据特殊定义的源文件格式或数据进行处理。预处理过程某次具体的运行流程也可以根据具体源文件的格式、数据内容、调用命令、参数、配置等内容,决定该预处理过程是否被调用执行。该预处理过程的处理内容并不做特别限定,可以由实施人员根据具体需求进行设计处理。步骤22、工具链转换扩展执行程序根据目标环境转换输入的调用命令和参数数据。该步骤是为了将步骤I中传入的命令和参数加工为原工具链程序可以识别和处理的内容,或者是将步骤I传入的命令和参数转换为能触发原工具链程序执行特定行为的内容。步骤22是可选的,若本发明的具体实施过程中不存在对步骤I传入的命令和参数进行加工或转换的需求,则可以取消步骤22。当存在步骤2时,某次具体的运行流程也可以根据具体源文件的格式、数据内容、调用命令、参数、配置等内容,决定该步骤22是否被调用执行。步骤22的处理内容并不做特别限定,可以由实施人员根据具体需求进行设计处理。步骤3、接着,工具链转换扩展执行程序创建一套进程输入输出控制环境。步骤3是为了创建一个进程间输入输出的通信通道,用于在工具链转换扩展执行程序和原工具链执行程序之间交互数据,进而达到工具链转换扩展执行程序对原工具链执行程序进行进程的目的。步骤3推荐使用管道通信来实现,但不局限于管道通信,实施人员也可以通过临时文件等技术来实施步骤3的过程。但是,实施人员所选用的具体的进程间输入输出的通信方法,必须能够在不修改原工具链程序的内部编码的前提下,就能够被原工具链程序所支持。步骤4、并以所述进程输入输出控制环境,调用原始工具链文件副本中的原工具链程序对所述源文件、调用命令和参数数据进行执行处理;由于步骤22对调用命令和参数数据有进行转换,因此该步骤4中调用的是经步骤22转换后的调用命令和参数数据。步骤4是工具链转换扩展执行程序对原始工具链文件副本中的原工具链执行程序的调用过程,即调用原工具链程序,执行IDE原始支持的编译、链接等功能。步骤41、原始工具链文件副本中的原工具链程序的执行处理完成后,工具链转换扩展执行程序再根据需求,对目标数据文件进行后处理。步骤41是可选的,若本发明的具体实施过程中不存在对源文件进行编译链接后的目标文件的再处理,则可以取消步骤41。当存在步骤41时,某次具体的运行流程也可以根据具体源文件的格式、数据内容、调用命令、参数、配置、具体目标文件的内容、格式等内容,决定步骤41是否被调用执行。步骤41的处理内容并不做特别限定,可以由实施人员根据具体需求进行设计处理。步骤5、最终的处理结果都返回给IDE前端进行显示和处理。步骤5过程是将本次流程的结果信息反馈给IDE前端进行显示和处理。该与步骤2的要求类似,步骤5反馈数据的过程一般是通过管道通信实现,但不局限于管道通信,具体的通信方式由具体的IDE环境决定。步骤5的通信在具体开发环境中可能被描述为不同的专业术语,如标准输入输出文件,标准输入输出流等等。步骤5在整个流程中并不限定为只执行一次,也并不限定只·在流程末尾执行。具体实施人员可以根据需求,在整个流程的一个位置或者多个位置,一次或多次执行步骤5。其中,本发明根据具体IDE环境对编译和链接的处理过程差异,上述的运行流程可以在一次编译、链接的过程中,被执行I次或多次。除上述流程描述以外,具体实施人员可以在流程中,根据需求,添加输出记录信息,输出临时文件等流程。这些流程不破坏对IDE工具链的转换和扩展效果。本发明思想通俗的理解是假设IDE原工具链可执行程序为A,IDE扩展和定制人员可以将原工具链的执行程序A文件通过重命名或者移动到其他目录,成为文件B,即创建IDE原始工具链文件副本;然后用任意编程语言开发一个新的程序,代替原工具链的执行程序A,该新的程序称为Al。这样,IDE启动编译链接过程时就会调用程序Al。程序Al中可以使用另一份管道,操作被重命名或移动目录后的文件B。这样,只要适当编写程序Al,就能够实现对源文件编译链接前的预处理、编译链接后的再处理、甚至可以实现对与IDE原先不支持的源文件的自处理。通过该思路实现的IDE工具链的转换扩展方法,开发实现的技术代价小,方案可以在多种IDE上通用,并且可以有效保留原IDE和工具链的优良特征。虽然以上描述了本发明的具体实施方式
,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
权利要求
1.一种集成开发环境中工具链转换扩展方法,其特征在于首先创建IDE原始工具链文件副本,再用工具链转换扩展执行程序替换该IDE中的原始工具链程序;然后由开发人员通过IDE启动某个源文件的编译链接过程,在该编译链接过程中由所述工具链转换扩展执行程序完成编译链接功能的扩展转换处理。
2.根据权利要求I所述的集成开发环境中工具链转换扩展方法,其特征在于所述工具链转换扩展执行程序完成扩展转换处理的具体步骤如下 步骤I、当某个源文件的编译链接过程起始后,IDE首先启动工具链转换扩展执行程序,并传入源文件、调用命令和参数数据; 步骤2、工具链转换扩展执行程序接收源文件、调用命令并分析参数数据; 步骤3、接着,工具链转换扩展执行程序创建一套进程输入输出控制环境; 步骤4、并以所述进程输入输出控制环境,调用原始工具链文件副本中的原工具链程序对所述源文件、调用命令和参数数据进行执行处理; 步骤5、最终的处理结果返回给IDE前端进行显示和处理。
3.根据权利要求2所述的集成开发环境中工具链转换扩展方法,其特征在于还包括 配置信息步骤如果具体实现方案中有配置数据的需求,则工具链转换扩展执行程序读取配置数据; 且该配置信息步骤在整个流程中任意不同位置或者任意同一位置,并被执行一次或多次。
4.根据权利要求2所述的集成开发环境中工具链转换扩展方法,其特征在于所述步骤2和步骤3之间还包括 步骤21、工具链转换扩展执行程序判断待编译或链接的源文件内容和格式是否是自定义的文件,若是,则运行自处理过程,然后进入步骤5 ;若否,则判断为待编译或链接的源文件是常规文件,先根据需求执行编译或链接前的可选的预处理过程。
5.根据权利要求4所述的集成开发环境中工具链转换扩展方法,其特征在于所述步骤21和步骤3之间还包括 步骤22、工具链转换扩展执行程序根据目标环境转换输入的调用命令和参数数据;并在所述步骤4中调用原始工具链文件副本中的原工具链程序所执行处理的调用命令和参数数据为经该步骤22转换后的调用命令和参数数据。
6.根据权利要求I所述的集成开发环境中工具链转换扩展方法,其特征在于所述步骤4和步骤5之间还包括 步骤41、原始工具链文件副本中的原工具链程序的执行处理完成后,工具链转换扩展执行程序再根据需求,对目标文件进行可选的后处理。
7.根据权利要求2至6任一项所述的集成开发环境中工具链转换扩展方法,其特征在于根据具体IDE环境对编译和链接的处理过程差异,所述步骤I至步骤5在一次编译、链接的过程中,被执行I次或多次。
全文摘要
本发明提供一种集成开发环境中工具链转换扩展方法,该方法在创建了IDE原始工具链文件副本后,用扩展转换程序替换IDE中原始工具链程序。在开发人员通过IDE启动某个源文件的编译链接过程时,扩展转换程序通过进程管道获取IDE对工具链的调用命令,执行编译链接过程的扩展或者功能转换的处理,接着由扩展转换程序调用原始工具链文件副本中的原工具链程序对扩展转换处理后的内容进行编译连接,然后再由扩展转换程序完成最终的扩展转换处理,最后将处理结果返回给IDE。本发明可以实现的IDE工具链的转换扩展,开发实现的技术代价小,方案可以在多种IDE上通用,并且可以有效保留原IDE和工具链的优良特性。
文档编号G06F9/44GK102902532SQ20121033887
公开日2013年1月30日 申请日期2012年9月13日 优先权日2012年9月13日
发明者林志伟, 吴军华, 张登峰, 余杭军 申请人:福建升腾资讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1