国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      多工具鏈工程構(gòu)建方法及系統(tǒng)的制作方法

      文檔序號:6484252閱讀:223來源:國知局
      專利名稱:多工具鏈工程構(gòu)建方法及系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及軟件開發(fā)技術(shù),尤其涉及一種多工具鏈工程構(gòu)建方法及系統(tǒng)。
      背景技術(shù)
      目前,在軟件程序開發(fā)領(lǐng)域,GNU的make工具提供了構(gòu)建工程的支持,make工具最 主要功能就是通過makefile文件來描述源程序之間的相互關(guān)系并自動維護(hù)編譯工作,不 過需要使用make工具的軟件開發(fā)人員自行編寫makefile文件。例如,對于手機(jī)軟件開發(fā) 平臺,手機(jī)軟件開發(fā)人員需要在多個編譯環(huán)境下使用不同的編譯工具鏈實現(xiàn)本地編譯和交 叉編譯,也就需要編寫、維護(hù)多個不同的makefile文件。舉例來說,對于模擬環(huán)境和手機(jī)環(huán) 境等,針對同一套程序代碼,需要分別建立兩個不同的工程,在一個工程中進(jìn)行本地編譯, 生成本地二進(jìn)制文件,在模擬環(huán)境中運行;在另一個工程中進(jìn)行交叉編譯,生成目標(biāo)二進(jìn)制 文件,在手機(jī)環(huán)境中運行。每個編譯環(huán)境都提供不同的makefile文件,那么手機(jī)軟件開發(fā)人員也就必須對 所有相應(yīng)編譯環(huán)境的makefile文件進(jìn)行維護(hù),工作極其繁瑣。若需要使用的編譯環(huán)境增 加,那么需要維護(hù)的makefile文件的數(shù)量將成倍增多,可維護(hù)性差,而且重復(fù)勞動量大。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明的主要目的在于提供一種多工具鏈工程構(gòu)建方法及系統(tǒng),能夠 實現(xiàn)多個編譯環(huán)境的統(tǒng)一構(gòu)建。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明提供一種多工具鏈工程構(gòu)建方法,包括創(chuàng)建批處理文件以及包含一個以上工具鏈中相同編譯環(huán)境部分的主makefile文 件;創(chuàng)建一個以上分別對應(yīng)不同工具鏈的子makefile文件;主makefile文件根據(jù)在批處理文件中輸入的工具鏈調(diào)用參數(shù),選擇調(diào)用相應(yīng)的 工具鏈,編譯、輸出可執(zhí)行文件。上述技術(shù)方案中,所述批處理文件設(shè)定有工具鏈的路徑和變量。所述相同編譯環(huán)境部分包括需要編譯的源文件信息。所述子makefile文件包括工具鏈的定義以及編譯規(guī)則。所述工具鏈為GCC工具鏈、RVCT工具鏈和/或ADS編譯工具鏈。本發(fā)明還提供了一種多工具鏈工程構(gòu)建系統(tǒng),包括入口模塊、編譯引擎模塊以及 編譯模塊;具體的入口模塊,用于創(chuàng)建批處理文件,將輸入的工具鏈調(diào)用參數(shù)發(fā)送至編譯引擎模 塊;編譯引擎模塊,用于創(chuàng)建包含一個以上工具鏈中相同編譯環(huán)境部分的主makefile 文件,根據(jù)入口模塊發(fā)來的工具鏈調(diào)用參數(shù),發(fā)送相應(yīng)的編譯環(huán)境加載指令給編譯模塊;
      編譯模塊,用于創(chuàng)建分別對應(yīng)各工具鏈的子makefile文件,根據(jù)編譯引擎模塊發(fā) 來的指令,調(diào)用對應(yīng)的工具鏈,編譯、輸出可執(zhí)行文件。上述技術(shù)方案中,所述批處理文件包括工具鏈的路徑和變量。所述相同編譯環(huán)境部分包括需要編譯的源文件信息。所述子makefile文件包括工具鏈的定義以及編譯規(guī)則。所述工具鏈為GCC工具鏈、RVCT工具鏈和/或ADS編譯工具鏈。本發(fā)明的多工具鏈工程構(gòu)建方法及系統(tǒng),通過創(chuàng)建包含不同工具鏈中相同編譯環(huán) 境部分的主makefile文件、以及用來定義工具鏈和規(guī)則的子makefile文件,統(tǒng)一構(gòu)建多個 編譯環(huán)境工程,然后依靠編譯引擎進(jìn)行管理,使工程在不同的編譯環(huán)境中統(tǒng)一構(gòu)建,可方便 地管理、切換編譯環(huán)境。切換不同的工具鏈只需要改變批處理文件輸入的工具鏈調(diào)用參數(shù) 即可,增加或者維護(hù)不同的編譯工具鏈只需要改變定義工具鏈和規(guī)則的子makefile文件 即可,在大大減輕了維護(hù)的難度的同時,減小了軟件開發(fā)人員的工作量。


      圖1為本發(fā)明多工具鏈工程構(gòu)建系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明多工具鏈工程構(gòu)建方法流程示意圖;圖3為本發(fā)明實施例多工具鏈工程構(gòu)建方法流程示意圖。
      具體實施例方式本發(fā)明的基本思想是在安裝有一個以上工具鏈的計算機(jī)系統(tǒng)中,創(chuàng)建批處理文 件和包含不同工具鏈中相同編譯環(huán)境部分的主makefile文件、以及一個以上與不同工具 鏈對應(yīng)的子makefile文件;然后根據(jù)批處理文件中輸入的工具鏈調(diào)用參數(shù)選擇調(diào)用相應(yīng) 的子makefile文件對應(yīng)的工具鏈,編譯、輸出相應(yīng)的可執(zhí)行文件。從而在一個工程中實現(xiàn) 在不同編譯環(huán)境下,使用相應(yīng)的編譯工具鏈編譯出所需的不同的可執(zhí)行文件。其中,不同工具鏈的相同編譯環(huán)境部分包括工程的基本環(huán)境信息和需要編譯的 源文件信息,工具鏈的不同具體體現(xiàn)在兩個方面工具鏈的定義和編譯規(guī)則。圖1為本發(fā)明多工具鏈工程構(gòu)建系統(tǒng)結(jié)構(gòu)示意圖,如圖1所示,該系統(tǒng)包括入口模 塊100、編譯引擎模塊110以及編譯模塊120 ;具體的入口模塊100,用于創(chuàng)建批處理文件,將輸入的工具鏈調(diào)用參數(shù)發(fā)送至編譯引擎模 塊 110 ;編譯引擎模塊110,用于創(chuàng)建包含一個以上工具鏈中相同編譯環(huán)境部分的主 makefile文件,根據(jù)入口模塊100發(fā)來的工具鏈調(diào)用參數(shù),發(fā)送相應(yīng)的編譯環(huán)境加載指令 給編譯模塊120 ;編譯模塊120,用于創(chuàng)建分別對應(yīng)各工具鏈的子makefile文件,根據(jù)編譯引擎模 塊110發(fā)來的指令,調(diào)用相應(yīng)的工具鏈,編譯、輸出可執(zhí)行文件。這里,所述批處理文件有三個作用1)負(fù)責(zé)定義編譯前的編譯環(huán)境的設(shè)定,比如設(shè)定有工具鏈的路徑和變量;2)負(fù)責(zé)接收輸入的工具鏈調(diào)用參數(shù);3)調(diào)用主makefile文件進(jìn)行工程構(gòu)建。
      所述主makefile文件有兩個作用1)在主makefile程序中定義前面所描述的不同工具鏈中相同編譯環(huán)境部分,例 如,需要編譯的源文件;2)管理子makefile文件,即根據(jù)Start, bat定義的變量包含相應(yīng)的子makefile 文件。所述子makefile文件的命名需要具有一定規(guī)則,這樣在主makefile中才能正確 包含引用。同時,本發(fā)明還提供了一種多工具鏈工程構(gòu)建方法,圖2為本發(fā)明多工具鏈工程 構(gòu)建方法流程示意圖,如圖2所示,本發(fā)明方法包括步驟1、在安裝有一個以上工具鏈的計算機(jī)系統(tǒng)中,創(chuàng)建批處理文件,并創(chuàng)建包含 一個以上工具鏈中相同編譯環(huán)境部分的主makefile文件;這里,所述工具鏈包括GCC工具鏈、RVCT工具鏈和/或ADS編譯工具鏈。步驟2、創(chuàng)建一個以上分別對應(yīng)各工具鏈的子makefile文件;步驟3、根據(jù)在批處理文件中輸入的工具鏈調(diào)用參數(shù),主makefile文件選擇調(diào)用 相應(yīng)編譯環(huán)境的工具鏈;步驟4、在所選擇的編譯環(huán)境中使用對應(yīng)的工具鏈編譯、輸出可執(zhí)行文件。下面結(jié)合具體實施例和附圖對本發(fā)明的多工具鏈工程構(gòu)建方法作進(jìn)一步說明。實施例本實施例以手機(jī)軟件開發(fā)為例,手機(jī)軟件開發(fā)中構(gòu)建模擬環(huán)境和手機(jī)環(huán)境時,一 般要用到GCC和RVCT兩條工具鏈。圖3為本發(fā)明實施例多工具鏈工程構(gòu)建方法流程示意圖,如圖3所示,本發(fā)明方法 包括步驟11、在安裝有GCC工具鏈和RVCT工具鏈的計算機(jī)系統(tǒng)中,創(chuàng)建批處理文件 Start, bat ;步驟12、創(chuàng)建包含GCC工具鏈和RVCT工具鏈中相同編譯環(huán)境部分的主makefile 文件;步驟13、創(chuàng)建分別對應(yīng)GCC工具鏈和RVCT工具鏈的子makefile文件;步驟14、根據(jù)在批處理文件Start, bat中輸入的工具鏈調(diào)用參數(shù),主makefile文 件選擇調(diào)用相應(yīng)編譯環(huán)境的工具鏈;步驟15、在所選擇的編譯環(huán)境中使用對應(yīng)的工具鏈編譯、輸出可執(zhí)行文件。步驟11中,創(chuàng)建批處理文件Start, bat,該批處理文件有三個作用1)負(fù)責(zé)定義編譯前的編譯環(huán)境的設(shè)定,例如,設(shè)定有GCC工具鏈和RVCT工具鏈的 路徑和變量;2)負(fù)責(zé)接收輸入的工具鏈調(diào)用參數(shù),若輸入SDK_C0MPILER = GCC,則表示選擇調(diào) 用GCC工具鏈;3)調(diào)用主makefile文件進(jìn)行工程構(gòu)建。步驟12中,創(chuàng)建主makefile文件makefile-engine, mk,該文件有兩個作用1)在主makefile程序中,定義前面所描述的不同工具鏈中相同編譯環(huán)境部分,例 如,需要編譯的源文件;
      2)管理子makefile文件,即根據(jù)Start, bat定義的變量包含相應(yīng)的子makefile 文件。例如,在主makefile中寫入include makedefs_$(SDK_C0MPILER) mk。include makerules_$(SDK_C0MPILER) mk。如果SDK_C0MPILER = GCC,說明選擇調(diào)用GCC工具鏈,那么主makefile文件包含 makedefs_gcc. mk和makerules_gcc. mk。這兩個文件即是定義GCC工具鏈編譯環(huán)境的子 makefile。步驟13 中,創(chuàng)建子 makefile 文件 makedefs_$ (SDK_C0MPILER). mk 和 makerules_$ (SDK_C0MPILER). mk。需要注意的是,子makefile文件的命名需要具有一定規(guī) 則,這樣在主makefile中才能正確包含引用。本實施例中,在makedefs_gcc. mk和makerules_gcc. mk中定義GCC工具鏈的特有 的編譯環(huán)境,在makedefs_rvct. mk和makerules_rvct. mk中定義RVCT工具鏈的特有的編 譯環(huán)境。對GCC工具鏈和RVCT工具鏈的切換只需在批處理文件Start, bat中輸入不同 的工具鏈調(diào)用參數(shù),例如,輸入Start, bat GCC,則根據(jù)makefile-engine, mk、makedefs_ gcc. mk和makerules_gCC. mk文件調(diào)用GCC工具鏈對工程進(jìn)行編譯,最后編譯、輸出EXE 文件,可以在計算機(jī)上模擬手機(jī)程序;而輸入Start, bat RVCT,則根據(jù)makefile-engine, mk、makedefs_rvct. mk和makerules_rvct. mk文件調(diào)用RVCT工具鏈對工程進(jìn)行編譯,最 后編譯、輸出ELF文件,可以上載到手機(jī)芯片中直接運行。這樣,手機(jī)軟件開發(fā)中的模擬 環(huán)境和手機(jī)環(huán)境都可以在此框架上構(gòu)建。以此類推,還可以增加其他編譯環(huán)境,如ADS編 譯工具鏈,僅需要在編譯引擎模塊里面注冊該編譯環(huán)境,并增加該ADS編譯工具對應(yīng)的子 makefile文件即可,修改和增加的代碼都大大減少。本發(fā)明的多工具鏈工程構(gòu)建方法和系統(tǒng),對工程管理的維護(hù)只需維護(hù)相應(yīng)的子 makefile即可,大大降低了工程構(gòu)建、管理的復(fù)雜度,有助于提高工程構(gòu)建的集成度和復(fù)用 性。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
      權(quán)利要求
      一種多工具鏈工程構(gòu)建方法,其特征在于,該方法包括創(chuàng)建批處理文件以及包含一個以上工具鏈中相同編譯環(huán)境部分的主makefile文件;創(chuàng)建一個以上分別對應(yīng)不同工具鏈的子makefile文件;主makefile文件根據(jù)在批處理文件中輸入的工具鏈調(diào)用參數(shù),選擇調(diào)用相應(yīng)的工具鏈,編譯、輸出可執(zhí)行文件。
      2.根據(jù)權(quán)利要求1所述的多工具鏈工程構(gòu)建方法,其特征在于,所述批處理文件設(shè)定 有工具鏈的路徑和變量。
      3.根據(jù)權(quán)利要求2所述的多工具鏈工程構(gòu)建方法,其特征在于,所述相同編譯環(huán)境部 分包括需要編譯的源文件信息。
      4.根據(jù)權(quán)利要求3所述的多工具鏈工程構(gòu)建方法,其特征在于,所述子makefile文件 包括工具鏈的定義以及編譯規(guī)則。
      5.根據(jù)權(quán)利要求1至4任一項所述的多工具鏈工程構(gòu)建方法,其特征在于,所述工具鏈 為GCC工具鏈、RVCT工具鏈和/或ADS編譯工具鏈。
      6.一種多工具鏈工程構(gòu)建系統(tǒng),其特征在于,所述系統(tǒng)包括入口模塊、編譯引擎模塊以 及編譯模塊;具體的入口模塊,用于創(chuàng)建批處理文件,將輸入的工具鏈調(diào)用參數(shù)發(fā)送至編譯引擎模塊;編譯引擎模塊,用于創(chuàng)建包含一個以上工具鏈中相同編譯環(huán)境部分的主makefile文 件,根據(jù)入口模塊發(fā)來的工具鏈調(diào)用參數(shù),發(fā)送相應(yīng)的編譯環(huán)境加載指令給編譯模塊;編譯模塊,用于創(chuàng)建分別對應(yīng)各工具鏈的子makefile文件,根據(jù)編譯引擎模塊發(fā)來的 指令,調(diào)用對應(yīng)的工具鏈,編譯、輸出可執(zhí)行文件。
      7.根據(jù)權(quán)利要求6所述的多工具鏈工程構(gòu)建系統(tǒng),其特征在于,所述批處理文件包括 工具鏈的路徑和變量。
      8.根據(jù)權(quán)利要求7所述的多工具鏈工程構(gòu)建系統(tǒng),其特征在于,所述相同編譯環(huán)境部 分包括需要編譯的源文件信息。
      9.根據(jù)權(quán)利要求8所述的多工具鏈工程構(gòu)建系統(tǒng),其特征在于,所述子makefile文件 包括工具鏈的定義以及編譯規(guī)則。
      10.根據(jù)權(quán)利要求6至9任一項所述的多工具鏈工程構(gòu)建系統(tǒng),其特征在于,所述工具 鏈為GCC工具鏈、RVCT工具鏈和/或ADS編譯工具鏈。
      全文摘要
      本發(fā)明提供一種多工具鏈工程構(gòu)建方法,該方法包括創(chuàng)建批處理文件以及包含一個以上工具鏈中相同編譯環(huán)境部分的主makefile文件;創(chuàng)建一個以上分別對應(yīng)不同工具鏈的子makefile文件;主makefile文件根據(jù)在批處理文件中輸入的工具鏈調(diào)用參數(shù),選擇調(diào)用相應(yīng)的工具鏈,編譯、輸出可執(zhí)行文件。本發(fā)明還提供了一種多工具鏈工程構(gòu)建系統(tǒng),包括入口模塊、編譯引擎模塊以及編譯模塊。本發(fā)明的方法和系統(tǒng),能夠?qū)崿F(xiàn)多個編譯環(huán)境的統(tǒng)一構(gòu)建,在大大減輕維護(hù)的難度的同時,減小了軟件開發(fā)人員的工作量。
      文檔編號G06F9/44GK101859244SQ20091008179
      公開日2010年10月13日 申請日期2009年4月10日 優(yōu)先權(quán)日2009年4月10日
      發(fā)明者張煉, 楊 一, 陳景雄 申請人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1