專利名稱:一種編譯程序的方法及裝置的制作方法
技術領域:
本發(fā)明涉及編譯技術領域,特別是涉及一種編譯程序的方法及裝置。
背景技術:
通常,在編寫好程序代碼之后,在Windows下使用IDE(IntegratedDevelop Environment,集成開發(fā)環(huán)境)工具對編寫完成的代碼進行編譯時,大多數(shù)IDE會自動生成 Makefile文件,因此,程序員通常不需要關注如何寫Makefile文件,只需要將代碼編寫好 后,運行IDE工具提供的"編譯",IDE工具會自動生成Makefile文件,進行編譯,得到最終結果。 但是,在li皿x下編程時,程序員就不得不直接面對Makefile文件了。例如,對于 一個簡單的程序,只含有main.c,程序員編譯時可以直接用gcc編譯器,使用gcc-o test main, c命令即可得到最終可執(zhí)行文件test。但是如果工程里面包含了大量的源文件,以及 依賴模塊,則直接使用gcc輸入命令顯然是不合適的,所以,make工具解決了這個問題,該 工具通過讀入符合Makefile規(guī)則的文件(默認文件名為Makefile或makefile,也可以通 過make_f ***來使用非標準文件名的Makefile文件),來推導各個源文件的依賴關系,調 用相應的編譯指令來生成最終目標。 對于一個源文件較少的工程,直接按照Makefile規(guī)則編寫一個Makefile文件 不是很難的一件事情,但是對于一個包含了大量的源文件,且依賴的模塊有很多的工程, 寫一個正確的Makefile文件就不是一件容易的事情了,對每一個工程都要寫一個正確的 Makefile文件,常常需要耗費程序員很大的精力,并且容易出錯,不便于維護及移植。
發(fā)明內容
本發(fā)明提供一種編譯程序的方法及裝置,能夠提高程序編譯的效率。
為實現(xiàn)上述目的,本發(fā)明提供了如下方案
—種編譯程序的方法,包括 讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量; 調用相關的shell腳本工具,生成編譯規(guī)則臨時文件; 引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行編譯。 優(yōu)選的,還包括 調用相關的shell腳本工具,從預先保存的文件中獲取依賴模塊的相關信息,將 所述相關信息加入主模塊的相關參數(shù)中。 優(yōu)選的,當所述依賴模塊為靜態(tài)庫模塊時,所述依賴模塊的相關信息包括所述依 賴模塊本身。 優(yōu)選的,當所述依賴模塊為動態(tài)庫模塊時,所述依賴模塊的相關信息包括所述依 賴模塊所在的路徑或者名稱。
優(yōu)選的,還包括
讀入所述依賴模塊的環(huán)境參數(shù),編譯所述依賴模塊,并生成本次編譯過程的緩存 文件。 優(yōu)選的,還包括 判斷依賴模塊是否已經(jīng)保存在緩存文件中,如果是,跳過編譯所述依賴模塊的步 驟。
—種編譯程序的裝置,包括 讀入單元,用于讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量; 生成單元,用于調用相關的shell腳本工具,生成編譯規(guī)則臨時文件; 編譯單元,用于引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行編譯。 優(yōu)選的,還包括 依賴模塊獲取單元,用于調用相關的shell腳本工具,從預先保存的文件中獲取 依賴模塊的相關信息,將所述相關信息加入主模塊的相關參數(shù)中。 優(yōu)選的,當所述依賴模塊為靜態(tài)庫模塊時,所述依賴模塊的相關信息包括所述依 賴模塊本身。 優(yōu)選的,當所述依賴模塊為動態(tài)庫模塊時,所述依賴模塊的相關信息包括所述依 賴模塊所在的路徑或者名稱。
優(yōu)選的,還包括 緩存單元,用于讀入所述依賴模塊的環(huán)境參數(shù),編譯所述依賴模塊,并生成本次編
譯過程的緩存文件。 優(yōu)選的,還包括 判斷單元,用于判斷依賴模塊是否已經(jīng)保存在緩存文件中,如果是,跳過編譯所述 依賴模塊的步驟。
根據(jù)本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術效果 本發(fā)明能夠通過讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量;調用相關的 shell腳本工具,生成編譯規(guī)則臨時文件;引用所述編譯規(guī)則臨時文件,調用相應的編譯器 對程序進行編譯。因此,通過本發(fā)明,用戶無須手動編寫Makefile文件,只需要輸入環(huán)境參 數(shù),就可以調用本發(fā)明提供的shell腳本工具,生成編譯規(guī)則臨時文件,然后完成實現(xiàn)編譯 過程。因此,能夠方便、快捷地完成編譯,并且易于維護和移植,能夠提高編譯速度。
此外,在進行跨平臺或交叉編譯時,只需要指定平臺參數(shù)即可,而不需要專門針對 某個平臺編寫不同的Makefile文件。 最后,主模塊和依賴模塊可以同時編譯,方便于同時開發(fā)主模塊和依賴模塊的情 況。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施 例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖 獲得其他的附圖。
圖1是本發(fā)明實施例提供的方法的流程4
圖2是本發(fā)明實施例提供的裝置的示意圖。
具體實施例方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
參見圖l,本發(fā)明實施例提供的編譯程序的方法包括以下步驟 S101 :讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量; S102 :調用相關的shell腳本工具,生成編譯規(guī)則臨時文件; S103 :引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行編譯。 為了實現(xiàn)上述技術方案,本發(fā)明實施例提供了 Makefile模板以及一系列的shell
腳本工具。其中,shell腳本工具可以組成.rules文件,保存在與各工程的同級或上級目
錄中,以便各工程都可以調用.rules文件中的Shell腳本工具。 用戶僅需填寫Makefile模板中所需的環(huán)境參數(shù),然后點擊make,本發(fā)明實施例提 供的編譯工具就可以調用rules, gcc這一 shell腳本工具,讀入用戶編譯時輸入的參數(shù),來 配置相關參數(shù)變量,調用相應的shell腳本工具,來生成編譯規(guī)則文件進行編譯,生成最終
目標,即整個過程中,無須生成通常意義上的Makefile文件,make之前,也不需要首先經(jīng)過 "自動生成Makefile文件"等操作。 其中,Makefile模板主要是提供給用戶,由用戶填寫一些環(huán)境參數(shù),其中,環(huán)境參 數(shù)可以包括 A)平臺名稱PLATFORM
ifeq ($ (PLATFORM),)
PLATFORM = i 386-1 i皿x
Endif 即,如果make時沒有指定PLATFORM,則默認是i386-li皿x類型
B)輸出類型及名稱
#MAKE_STATIC_LIB := 1
#MAKE_SHARED_LIB : = 1
EXECUTABLE := 即,如果輸出時靜態(tài)庫,則MAKE_STATIC_LIB : = 1 ,如果是動態(tài)庫,則MAKE_ SHARED_LIB : = 1 否則是可執(zhí)行文件。目標名稱為EXECUTABLE值。其中,MAKE—STATICJJB和MAKE_SHARED_LIB 二者最多只能設定一個,可執(zhí)行文件
不能設定這兩個選項的任何一個。 EXECUTABLE :=最終目標文件名。 C)頭文件路徑 INCLUDE—PATH : = $ (SYS—INCLUDE—PATH) \ 默認已經(jīng)包含了系統(tǒng)頭文件路徑,只需把程序中依賴的所有頭文件路徑包含進來
5即可 D)用戶自定義宏 DEFINES : = _DXP_UNIX_DOS_LINUX 如果是程序中固定的宏,可以直接寫在這里,如果是可變的宏定義,可以靈活地通 過make參數(shù)加在這里。 E)包含路徑設定 INCLUDE—PATH : = $ (SYS—INCLUDE—PATH) 如果程序依賴其他庫,可以把庫路徑寫在這里。 其中,INCLUDE—PATH是項目需要的include文件的目錄,如廣I. /-I. /include ; SYS_INCLUDE_PATH為系統(tǒng)包含文件路徑的環(huán)境變量。 F)連接庫包含路徑設定 LIBRARY—PATH : = $ (SYS—LIBRARY—PATH) 其中,LIBRARY_PATH是項目在此路徑下搜索包含的動態(tài)庫,如_L. /_L. . / sourc6 j SYS_LIBRARY_PATH為系統(tǒng)lib文件路徑的環(huán)境變量。 G)連接庫設定 1JBS := _lpthread_lstdc++ USERLIBS := 其中,LIBS是一個需要連接的標準程序庫列表,帶-1前綴,例如pthread, stdc++
坐坐 寸寸; USERLIBS是需要連接的用戶程序庫列表,不帶_1前綴; 對于li皿x下的動態(tài)庫必須加在LIBS里面,并在LIBRARY_PATH里面加上動態(tài)庫 所在的目錄,其中,動態(tài)庫必須以1 ib為前綴。
H)源文件設定 SOURCE : = $ (wildcard. /source/氺.c) $ (wi ldcard. /source/氺.cc) $ (wildcard. / source/承.cpp)
_S0URCE := 其中,默認SOURCE為makefile所在目錄下的source目錄下所有c/c++源文件;
源文件最終集合=[SOURCE集]-[_S0URCE集]。 用戶僅需要將上述環(huán)境參數(shù)填寫完畢,就可以輸入make指令,然后,make工具就 會自動調用相關的shell腳本工具(make_0bj_rules),生成編譯規(guī)則臨時文件,該文件符 合Makefile規(guī)范,然后引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行編譯。
在實際應用中, 一個工程的主模塊可能會存在大量的依賴模塊,在現(xiàn)有技術中,需 要在Makefile文件中根據(jù)每個模塊的類型(如動態(tài)庫和靜態(tài)庫),在調用編譯器的指令處 將依賴的模塊的最終生成目標所在路徑、模塊名稱等參數(shù)填寫正確,,并且,主模塊和依賴 模塊間的編譯是獨立的,編譯主模塊時,必須確保倚賴模塊最終生成目標已經(jīng)被編譯,才能 生成主模塊的最終目標,這對于同時開發(fā)主模塊和依賴模塊的情況,由于經(jīng)常會同時修改 依賴模塊,并且可能模塊間依賴關系比較復雜,如果每次都要先將依賴的模塊全部編譯好 之后再編譯主模塊,并且在全部編譯好之后還要將依賴的所有動態(tài)庫模塊都拷貝到主模塊目錄下運行,則使用起來不方便,不能在編譯時自動開始編譯所依賴的工程,并且在編譯后 自動安裝(即拷貝所有依賴的動態(tài)庫到主模塊最終生成的可執(zhí)行文件所在目錄下),以能 夠運行最終的可執(zhí)行文件。 而在本發(fā)明實施例中,依賴關系可以寫在一個單獨的文件(modules, d印end)中,
并且同時提供了相應的shell腳本工具(kd印end),在編譯主模塊的過程中,可以調用
kd印end去獲取依賴模塊的目標名、目標路徑等,并加入到主模塊的相關參數(shù)中。 其中,如果MODULES_DEPEND中含靜態(tài)庫模塊,則可以直接添加該依賴模塊到
USERLIBS變量;如果MODULES_DEPEND中含動態(tài)庫模塊,則可以添加該動態(tài)庫模塊所在路徑
或者名稱到LIBRARY—PATH變量。 其中,依賴模塊也具有子集的環(huán)境參數(shù)(也是由用戶填寫的),并且還可以有其所 依賴的模塊。也就是說,在編譯依賴模塊時,其處理方法與編譯主模塊是一樣的,同樣需要 讀入其環(huán)境參數(shù),并配置環(huán)境參數(shù)變量,而且,也可以調用相關的shell腳本工具,生成編 譯規(guī)則臨時文件,對該依賴模塊進行編譯。因此,在本發(fā)明實施例中,依賴模塊與主模塊的 編譯不是相互獨立的,可以在編譯主模塊的過程中,編譯依賴模塊,因此,在編譯主模塊時, 就不再需要預先編譯好依賴模塊,主模塊與依賴模塊可以同時開發(fā)。 在實際應用中,可能會有多個模塊都依賴于同一依賴模塊,這樣在對某依賴模塊 編譯過之后,在該依賴模塊沒有發(fā)生更新的情況下,其他模塊再調用該依賴模塊時,就可以 不用再進行編譯。 為此,本發(fā)明實施例可以在編譯所述依賴模塊時,生成本次編譯過程的緩存 (cache)文件。相應的,本發(fā)明實施例提供了另一種shell腳本工具mkcachefile,調用該 工具時,可以生成本次編譯過程的cache文件,該文件用于保存本次編譯過程中已經(jīng)編譯 過的模塊,避免多模塊依賴同一模塊時對該模塊的重復編譯。然后,還可以調用put_int0_ cache工具,將已編譯的依賴模塊加入cache文件中 同時,還可以提供notjrucache腳本工具,調用該工具可以判斷某依賴模塊是否 存在cache文件中,如不存在則編譯該依賴模塊,否則表示已經(jīng)編譯過,跳過對該依賴模塊 的編譯過程。同時也可以判斷某模塊是否已經(jīng)執(zhí)行過拷貝到最終目標路徑的過程。
除了 Makefile模板及shell腳本工具之外,本發(fā)明實施例還提供了平臺相關配 置文件,該文件主要用來指明平臺相關的工具,配置文件名格式為rules. (PLATFORM),如 mips平臺下配置文件取名為rules, mipsel-li皿x, i386平臺下配置文件取名為rules. i386-li皿x,平臺配置文件主要設置該平臺下編譯工具的名稱前綴,及平臺相關的隱含規(guī) 則變量等,如rules, mipsel-li皿x內容。這樣,在進行跨平臺或交叉編譯時,填寫平臺相關 配置文件即可,而不需要針對各個平臺編寫相應的Makefile文件。 其中,所述交叉編譯指在一個平臺上生成另一個平臺上的可執(zhí)行代碼,在一些特 定環(huán)境下,例如目標機器由于資源問題不能運行編譯器,或源程序太大不能拷貝到目標機 器進行編譯時,都需要在另外一個平臺上,安裝目標平臺的交叉編譯工具鏈,來編譯成能運 行在目標平臺上的可執(zhí)行文件。在現(xiàn)有技術中,當用戶在開發(fā)程序時,可能想分別編譯成目 標平臺A和B(如X86和mips平臺)上的代碼以檢查編譯是否正確,則需要分別生成平臺 A和B上的Makefile文件進行編譯,而本發(fā)明實施例中則不需要分別針對平臺生成相應的 Makefile文件,只需要在平臺配置文件中進行配置即可。
為了更好地理解本發(fā)明實施例提供的方法,下面通過具體應用中的操作流程,對 本發(fā)明進行詳細地介紹。( — )工程的目錄結構需要遵循規(guī)則拷貝所有需要的shell腳本工具和平臺配 置文件到.rules目錄,并將.rules目錄保存為與所有工程目錄同級或更高一級;Makefile 模板文件和modules, d印end必須位于工程目錄下。例如可建立如下目錄結構 -project -------- rules ---------prjl -----------------source -----------------include -----------------Makefile -----------------modules, depend ---------prj2 -----------------source -----------------include -----------------Makefile -----------------modules, depend ( 二 )當建立一個新的工程進行編譯時首先拷貝Makefile模板到工程目錄下,
按照模板格式填寫必要的參數(shù),同時將工程依賴的模塊路徑寫到modules, d印end文件中, 編譯即可。(三)編譯流程 1)用戶輸入make命令進行編譯時,make工具開始解析Makefile模板文件,讀取 該模板文件的參數(shù)變量; 2)通過Makefile模板中 的語句include$ (T0PDIR)/. rules/ rules. $ (PLATFORM) , make工具開始解析.rules目錄下的rules. $ (PLATFORM)文件,讀入 平臺相關參數(shù)變量。其中,$ (PLATFORM)被替換為用戶在make時指定的平臺類型(不指定 時默認為i386-li皿x)。例如,makePLATF0RM = i386-li皿x表示編譯成i386-li皿x平臺 上的目標,makePLATFORM = mipsel—linux表示編譯成mipsel—linux平臺上的目標;
3)通過rules. ($PLATF0RM)文件中的語句include$ (T0PDIR)/ rules/rules. gcc, make工具開始解析 rules目錄下的rules, gcc文件; 4)make工具解析rules, gcc過程中,對相關參數(shù)變量進行了賦值,并執(zhí)行相關指 令,依次編譯依賴的模塊,生成本模塊的編譯規(guī)則臨時文件,調用編譯器進行編譯,具體過 程如下 a)調用mkcachefile生成cache文件
b)相關環(huán)境參數(shù)設置,主要參數(shù)為
BUILDING_0UTPUT_DIR :目標輸出路徑。
INSTALL_DIR :目標安裝全路徑
CC:C編譯器
0++<::0++編譯器
LD:連接器MODULES_DEPEND :從.modules, d印end文件中獲取依賴模塊到該變量;USERLIBS :調用kd印end工具,如MODULES_DEPEND中含靜態(tài)庫模i央,則添加該模土央
到USERLIBS變量; LIBRARY_PATH :調用kd印end工具,如MODULES_DEPEND中含動態(tài)庫模i央,則添加該 動態(tài)庫模塊所在路徑到LIBRARY_PATH變量; LIBS :調用kd印end工具,如MODULES_DEPEND中含動態(tài)庫模塊,則添加該動態(tài)庫模 塊名到LIBS變量;CFLAGS, CXXFLAGS, DEFINES, LDFLAGS :隱含規(guī)則變量;
LDFLAGS :運行時lib尋找路徑和連接時的lib路徑;
OBJS, DEPS :編譯工具編譯時輸入?yún)?shù)變量;
5)規(guī)則設置好后,執(zhí)行編譯過程 [O130] a)編譯依賴模塊 對每個依賴模塊,調用notjn—cache檢查該模塊是否在cache文件中;如在 cache文件中,表示該模塊已經(jīng)被編譯過,檢查下一個模塊,重復a);如沒有在cache文件, 則調用make,并將參數(shù)傳遞,編譯該依賴模塊,編譯過程與編譯主模塊相同;并將該模塊的 名稱加入cache中,表明該模塊已經(jīng)被編譯; b)調用make_obj_rules生成本模塊編譯規(guī)則臨時文件obj_rules. tmk ;
c)make命令工具引用obj_ruleS. tmk文件,調用相應編譯器進行編譯。
6)編譯完成后,執(zhí)行安裝過程 a)如果本模塊是靜態(tài)庫,拷貝本模塊生成目標結果到INSTALL_DIR目錄; b)如果本模塊非靜態(tài)庫,則對每個依賴目標,調用notjn—cache判斷該目標是否
已經(jīng)被安裝; c)如果已經(jīng)被安裝到INSTALL_DIR目錄,則檢查下一個模塊; d)如果沒有安裝,則執(zhí)行拷貝安裝過程,并在cache文件中置已經(jīng)安裝標志。 總之,本發(fā)明實施例可以建立一套標準的Makefile模板,結合所提供的shell腳
本工具,使得對于每個工程,只需要按照Makefile模板格式填寫一些相關的環(huán)境參數(shù),即
可通過make工具進行編譯;編譯時自動編譯依賴模塊,且對該過程進行優(yōu)化,避免多模塊
依賴同一模塊時對該依賴模塊的重復編譯和最終拷貝安裝過程。 與本發(fā)明實施例提供的編譯程序的方法相對應,本發(fā)明實施例還提供了一種編譯 程序的裝置,參見圖2,該裝置包括 讀入單元U201,用于讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量;
生成單元U202,用于調用相關的shell腳本工具,生成編譯規(guī)則臨時文件;
編譯單元U203,用于引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行 編譯。
當一個工程存在多個依賴模塊時,該裝置還可以包括 依賴模塊獲取單元,用于調用相關的shell腳本工具,從預先保存的文件中獲取 依賴模塊的相關信息,將所述相關信息加入主模塊的相關參數(shù)中。 其中,當所述依賴模塊為靜態(tài)庫模塊時,所述依賴模塊的相關信息包括所述依賴
9模塊本身。 當所述依賴模塊為動態(tài)庫模塊時,所述依賴模塊的相關信息包括所述依賴模塊所 在的路徑或者名稱。
為了避免對同一依賴模塊的重復編譯,該裝置還可以包括 緩存單元,用于讀入所述依賴模塊的環(huán)境參數(shù),編譯所述依賴模塊,并生成本次編 譯過程的緩存文件。
在此基礎上,該裝置還可以包括 判斷單元,用于判斷依賴模塊是否已經(jīng)保存在緩存文件中,如果是,跳過編譯所述 依賴模塊的步驟。 以上對本發(fā)明所提供的一種編譯程序的方法及裝置,進行了詳細介紹,本文中應 用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理 解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本發(fā) 明的限制。
10
權利要求
一種編譯程序的方法,其特征在于,包括讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量;調用相關的shell腳本工具,生成編譯規(guī)則臨時文件;引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行編譯。
2. 根據(jù)權利要求l所述的方法,其特征在于,還包括調用相關的shell腳本工具,從預先保存的文件中獲取依賴模塊的相關信息,將所述 相關信息加入主模塊的相關參數(shù)中。
3. 根據(jù)權利要求2所述的方法,其特征在于,當所述依賴模塊為靜態(tài)庫模塊時,所述依 賴模塊的相關信息包括所述依賴模塊本身。
4. 根據(jù)權利要求2所述的方法,其特征在于,當所述依賴模塊為動態(tài)庫模塊時,所述依 賴模塊的相關信息包括所述依賴模塊所在的路徑或者名稱。
5. 根據(jù)權利要求2所述的方法,其特征在于,還包括讀入所述依賴模塊的環(huán)境參數(shù),編譯所述依賴模塊,并生成本次編譯過程的緩存文件。
6. 根據(jù)權利要求5所述的方法,其特征在于,還包括判斷依賴模塊是否已經(jīng)保存在緩存文件中,如果是,跳過編譯所述依賴模塊的步驟。
7. —種編譯程序的裝置,其特征在于,包括讀入單元,用于讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量;生成單元,用于調用相關的shell腳本工具,生成編譯規(guī)則臨時文件;編譯單元,用于引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行編譯。
8. 根據(jù)權利要求7所述的裝置,其特征在于,還包括依賴模塊獲取單元,用于調用相關的shell腳本工具,從預先保存的文件中獲取依賴 模塊的相關信息,將所述相關信息加入主模塊的相關參數(shù)中。
9. 根據(jù)權利要求8所述的裝置,其特征在于,當所述依賴模塊為靜態(tài)庫模塊時,所述依 賴模塊的相關信息包括所述依賴模塊本身。
10. 根據(jù)權利要求8所述的裝置,其特征在于,當所述依賴模塊為動態(tài)庫模塊時,所述 依賴模塊的相關信息包括所述依賴模塊所在的路徑或者名稱。
11. 根據(jù)權利要求8所述的裝置,其特征在于,還包括緩存單元,用于讀入所述依賴模塊的環(huán)境參數(shù),編譯所述依賴模塊,并生成本次編譯過 程的緩存文件。
12. 根據(jù)權利要求11所述的裝置,其特征在于,還包括判斷單元,用于判斷依賴模塊是否已經(jīng)保存在緩存文件中,如果是,跳過編譯所述依賴 模塊的步驟。
全文摘要
本發(fā)明公開了一種編譯程序的方法及裝置,其中,所述方法包括讀入用戶輸入的環(huán)境參數(shù),配置環(huán)境參數(shù)變量;調用相關的shell腳本工具,生成編譯規(guī)則臨時文件;引用所述編譯規(guī)則臨時文件,調用相應的編譯器對程序進行編譯。通過本發(fā)明,能夠方便、快捷地完成編譯,并且易于維護和移植,能夠提高編譯速度。
文檔編號G06F9/45GK101697135SQ20091023585
公開日2010年4月21日 申請日期2009年10月28日 優(yōu)先權日2009年10月28日
發(fā)明者田海燕, 郭軍 申請人:北京東方網(wǎng)力科技有限公司;