編譯平臺、編譯方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件開發(fā)領(lǐng)域,特別涉及一種編譯平臺、編譯方法及裝置。
【背景技術(shù)】
[0002]編譯是指利用編譯程序?qū)⒃凑Z言編寫的源程序生成為目標(biāo)程序的過程。例如,在Linux平臺上,最常用的是GNU make編譯工具。
[0003]在編譯程序的過程中,待編譯的源程序通常需要依賴庫文件,庫文件是已經(jīng)編譯好的具有一定功能的程序文件。比如,一個源程序,需要依賴已經(jīng)編譯好的libA、IibB和IibC三個庫文件,才能編譯得到目標(biāo)程序。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:由于每個開發(fā)人員獨自使用一臺開發(fā)終端,各個開發(fā)終端上的編譯環(huán)境可能并不相同,也即每個編譯環(huán)境中提供的庫文件可能互不相同。這種編譯環(huán)境的差異會導(dǎo)致編譯過程出現(xiàn)冗余依賴等各種冋題。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種編譯平臺、編譯方法及裝置。技術(shù)方案如下:
[0006]根據(jù)本發(fā)明實施例的第一方面,提供一種編譯平臺,該編譯平臺包括:web服務(wù)器、調(diào)度服務(wù)器、η臺編譯機和數(shù)據(jù)庫服務(wù)器,η臺編譯機具有相同的編譯環(huán)境,η為正整數(shù);
[0007]web服務(wù)器,用于通過web頁面接收開發(fā)終端上傳的源程序和編譯參數(shù);將源程序和編譯參數(shù)發(fā)送至調(diào)度服務(wù)器;
[0008]調(diào)度服務(wù)器,用于接收web服務(wù)器發(fā)送的源程序和編譯參數(shù);根據(jù)源程序和編譯參數(shù)生成編譯任務(wù);將編譯任務(wù)分發(fā)給η臺編譯機;
[0009]編譯機,用于接收調(diào)度服務(wù)器下發(fā)的編譯任務(wù);根據(jù)編譯任務(wù)對源程序進行編譯,得到編譯結(jié)果;
[0010]數(shù)據(jù)庫服務(wù)器,用于存儲編譯記錄信息,每條編譯記錄信息包括源程序、編譯參數(shù)和編譯結(jié)果中的全部內(nèi)容或者部分內(nèi)容。
[0011]根據(jù)本發(fā)明實施例的第二方面,提供一種編譯方法,用于調(diào)度服務(wù)器中,該方法包括:
[0012]接收開發(fā)終端通過web頁面上傳的源程序和編譯參數(shù),web頁面由web服務(wù)器提供;
[0013]根據(jù)源程序和編譯參數(shù)生成編譯任務(wù);
[0014]將編譯任務(wù)分發(fā)給具有相同的編譯環(huán)境的η臺編譯機,η為正整數(shù);η臺編譯機用于根據(jù)編譯任務(wù)對源程序進行編譯,得到編譯結(jié)果,并將源程序、編譯參數(shù)和編譯結(jié)果中的全部內(nèi)容或者部分內(nèi)容作為編譯記錄信息存儲在數(shù)據(jù)庫服務(wù)器中。
[0015]根據(jù)本發(fā)明實施例的第三方面,提供一種編譯方法,用于web服務(wù)器中,該方法包括:
[0016]通過web頁面接收開發(fā)終端上傳的源程序和編譯參數(shù);
[0017]將源程序和編譯參數(shù)發(fā)送至調(diào)度服務(wù)器,調(diào)度服務(wù)器用于根據(jù)源程序和編譯參數(shù)生成編譯任務(wù),并將編譯任務(wù)分發(fā)給具有相同的編譯環(huán)境的η臺編譯機,η為正整數(shù);η臺編譯機用于根據(jù)編譯任務(wù)對源程序進行編譯,得到編譯結(jié)果,并將源程序、編譯參數(shù)和編譯結(jié)果中的全部內(nèi)容或者部分內(nèi)容作為編譯記錄信息存儲在數(shù)據(jù)庫服務(wù)器中。
[0018]根據(jù)本發(fā)明實施例的第四方面,提供一種編譯裝置,用于調(diào)度服務(wù)器中,該裝置包括:
[0019]第一接收模塊,用于接收開發(fā)終端通過web頁面上傳的源程序和編譯參數(shù),web頁面由web服務(wù)器提供;
[0020]生成模塊,用于根據(jù)源程序和編譯參數(shù)生成編譯任務(wù);
[0021]分發(fā)模塊,用于將編譯任務(wù)分發(fā)給具有相同的編譯環(huán)境的η臺編譯機,η為正整數(shù);η臺編譯機用于根據(jù)編譯任務(wù)對源程序進行編譯,得到編譯結(jié)果,并將源程序、編譯參數(shù)和編譯結(jié)果中的全部內(nèi)容或者部分內(nèi)容作為編譯記錄信息存儲在數(shù)據(jù)庫服務(wù)器中。
[0022]根據(jù)本發(fā)明實施例的第五方面,提供一種編譯裝置,用于web服務(wù)器中,該裝置包括:
[0023]上傳模塊,用于通過web頁面接收開發(fā)終端上傳的源程序和編譯參數(shù);
[0024]第一發(fā)送模塊,用于將源程序和編譯參數(shù)發(fā)送至調(diào)度服務(wù)器,調(diào)度服務(wù)器用于根據(jù)源程序和編譯參數(shù)生成編譯任務(wù),并將編譯任務(wù)分發(fā)給具有相同的編譯環(huán)境的η臺編譯機,η為正整數(shù);η臺編譯機用于根據(jù)編譯任務(wù)對源程序進行編譯,得到編譯結(jié)果,并將源程序、編譯參數(shù)和編譯結(jié)果中的全部內(nèi)容或者部分內(nèi)容作為編譯記錄信息存儲在數(shù)據(jù)庫服務(wù)器中。
[0025]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
[0026]通過調(diào)度服務(wù)器根據(jù)開發(fā)終端上傳的源程序和編譯參數(shù)生成編譯任務(wù),并分發(fā)至具有相同編譯環(huán)境的η臺編譯機,由η臺編譯機執(zhí)行編譯任務(wù);解決了編譯環(huán)境的差異所導(dǎo)致的編譯過程出現(xiàn)冗余依賴的問題;達到了由具有相同編譯環(huán)境的η臺編譯機執(zhí)行編譯任務(wù),不再出現(xiàn)冗余依賴的情況,且多臺編譯機共同執(zhí)行編譯任務(wù),提高編譯速度的效果。
【附圖說明】
[0027]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0028]圖1是本發(fā)明各個實施例提供的編譯方法所涉及的實施環(huán)境的環(huán)境示意圖;
[0029]圖2是本發(fā)明一個實施例提供的服務(wù)器的結(jié)構(gòu)示意圖;
[0030]圖3Α和圖3Β是本發(fā)明一個實施例提供的編譯方法的實施示意圖;
[0031]圖4是本發(fā)明一個實施例提供的編譯方法的方法流程圖;
[0032]圖5Α是本發(fā)明另一實施例提供的編譯方法的方法流程圖;
[0033]圖5Β是本發(fā)明另一實施例提供的編譯方法所涉及的獲取編譯信息過程的方法流程圖;
[0034]圖5C是本發(fā)明另一實施例提供的編譯方法所涉及的編譯信息查詢過程的方法流程圖;
[0035]圖6A是本發(fā)明再一實施例提供的編譯方法的方法流程圖;
[0036]圖6B是圖6A所示編譯方法的實施示意圖;
[0037]圖7是本發(fā)明一個實施例提供的編譯裝置的結(jié)構(gòu)方框圖;
[0038]圖8是本發(fā)明另一實施例提供的編譯裝置的結(jié)構(gòu)方框圖。
【具體實施方式】
[0039]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0040]系統(tǒng)環(huán)境
[0041]請參考圖1,其示出了本發(fā)明各個實施例提供的編譯方法所涉及的實施環(huán)境的環(huán)境示意圖。該實施環(huán)境包括開發(fā)終端110、web服務(wù)器120、調(diào)度服務(wù)器130、至少一臺編譯機140和數(shù)據(jù)庫服務(wù)器150。
[0042]開發(fā)終端110是用于編寫程序的電子設(shè)備,該電子設(shè)備可以是臺式計算機或膝上型便攜計算機等等。
[0043]開發(fā)終端110與web服務(wù)器120之間通過有線或無線網(wǎng)絡(luò)相連。
[0044]web服務(wù)器120可以是一臺服務(wù)器,或者由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心。該web服務(wù)器120用于向開發(fā)終端110提供web頁面,并通過該web頁面接收開發(fā)終端110上傳的源程序和編譯參數(shù)。
[0045]web服務(wù)器120與調(diào)度服務(wù)器130之間通過有線或無線網(wǎng)絡(luò)相連。
[0046]調(diào)度服務(wù)器130可以是一臺服務(wù)器,或者由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心。調(diào)度服務(wù)器130用于根據(jù)web服務(wù)器120上傳的源程序和編譯參數(shù),生成編譯任務(wù)并下發(fā)至至少一臺編譯機140。
[0047]調(diào)度服務(wù)器130與至少一臺編譯機140之間通過有線或無線網(wǎng)絡(luò)相連。
[0048]編譯機140是具有程序編譯功能的電子設(shè)備。編譯機140用于根據(jù)調(diào)度服務(wù)器130下發(fā)的編譯任務(wù)對源程序進行編譯,并將編譯結(jié)果上報給數(shù)據(jù)庫服務(wù)器150。
[0049]編譯機140與數(shù)據(jù)庫服務(wù)器150之間通過有線或無線網(wǎng)絡(luò)相連。
[0050]數(shù)據(jù)庫服務(wù)器150可以是一臺服務(wù)器,或者由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心。數(shù)據(jù)庫服務(wù)器150用于將編譯結(jié)果反饋給預(yù)定的開發(fā)終端IlOo
[0051]數(shù)據(jù)庫服務(wù)器150與開發(fā)終端110之間通過有線或無線網(wǎng)絡(luò)相連。
[0052]計算機架構(gòu)
[0053]圖2示出了本發(fā)明一個實施例提供的服務(wù)器的結(jié)構(gòu)示意圖。該服務(wù)器可以是圖1中的web服務(wù)器120、調(diào)度服務(wù)器130、編譯機140或數(shù)據(jù)庫服務(wù)器150。具體來講:
[0054]服務(wù)器200包括中央處理單元(CPU) 201、包括隨機存取存儲器(RAM) 202和只讀存儲器(ROM) 203的系統(tǒng)存儲器204,以及連接系統(tǒng)存儲器204和中央處理單元201的系統(tǒng)總線205。服務(wù)器200還包括幫助計算機內(nèi)的各個器件之間傳輸信息的基本輸入/輸出系統(tǒng)(I/o系統(tǒng))206,和用于存儲操作系統(tǒng)213、應(yīng)用程序214和其他程序模塊215的大容量存儲設(shè)備207。
[0055]基本輸入/輸出系統(tǒng)206包括有用于顯示信息的顯示器208和用于用戶輸入信息的諸如鼠標(biāo)、鍵盤之類的輸入設(shè)備209。其中顯示器208和輸入設(shè)備209都通過連接到系統(tǒng)總線205的輸入輸出控制器210連接到中央處理單元201?;据斎?輸出系統(tǒng)206還可以包括輸入輸出控制器210以用于接收和處理來自鍵盤、鼠標(biāo)、或電子觸控筆等多個其他設(shè)備的輸入。類似地,輸入輸出控制器210還提供輸出到顯示屏、打印機或其他類型的輸出設(shè)備。
[0056]大容量存儲設(shè)備207通過連接到系統(tǒng)總線205的大容量存儲控制器(未示出)連接到中央處理單元201。大容量存儲設(shè)備207及其相關(guān)聯(lián)的計算機可讀介質(zhì)為服務(wù)器200提供非易失性存儲。也就是說,大容量存儲設(shè)備207可以包括諸如硬盤或者CD-ROM