亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)處理的方法以及裝置的制造方法

文檔序號(hào):8543569閱讀:312來(lái)源:國(guó)知局
一種數(shù)據(jù)處理的方法以及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理的方法以及裝置。
【背景技術(shù)】
[0002]GNU構(gòu)建系統(tǒng)主要是指通過(guò)autoconf,automake和Iibtool這三個(gè)工具構(gòu)建出來(lái)的軟件結(jié)構(gòu)體系,又名Autotools。通常和GNU make, gettext以及GCC —起配套使用。在Iinux系統(tǒng)上,通常都是定義Makefile通過(guò)GNU make工具來(lái)完成編譯的。
[0003]軟件項(xiàng)目用各種工具來(lái)構(gòu)建代碼,最常用的是GNU make。但是通過(guò)GNUmake工具構(gòu)建代碼仍然會(huì)存在以下問(wèn)題:由于每個(gè)開(kāi)發(fā)人員的Makefile編寫(xiě)不一致,所以可能會(huì)導(dǎo)致出現(xiàn)庫(kù)文件的冗余依賴(lài),從而影響了構(gòu)建代碼的效率。例如,Makfi Ie_svrA:依賴(lài)的庫(kù)包括 IibA, IibB, IibC, Makefile_libB:依賴(lài)的庫(kù)包括 libA、libC、libD,那么 svrA 的依賴(lài)關(guān)系就出現(xiàn)了冗余,冗余的依賴(lài)是libA、libC。

【發(fā)明內(nèi)容】

[0004]本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理的方法以及裝置,可提高構(gòu)建代碼的效率。
[0005]本發(fā)明實(shí)施例第一方面提供了一種數(shù)據(jù)處理的方法,包括:
[0006]獲取至少一個(gè)構(gòu)建腳本中各構(gòu)建腳本中的第一編譯目標(biāo)以及與所述第一編譯目標(biāo)為直接依賴(lài)關(guān)系的第二編譯目標(biāo);
[0007]根據(jù)所述各構(gòu)建腳本中的第一編譯目標(biāo)與第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系,計(jì)算所述至少一個(gè)構(gòu)建腳本中各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的依賴(lài)關(guān)系樹(shù),所述依賴(lài)關(guān)系樹(shù)包括所述各第一編譯目標(biāo)和所述各第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系以及間接依賴(lài)關(guān)系;
[0008]當(dāng)檢測(cè)到在所述各第一編譯目標(biāo)或所述各第二編譯目標(biāo)中存在代碼更新時(shí),根據(jù)所述依賴(lài)關(guān)系樹(shù)對(duì)與代碼更新后的編譯目標(biāo)具有直接依賴(lài)關(guān)系或間接依賴(lài)關(guān)系的初始編譯目標(biāo)進(jìn)行重新編譯。
[0009]本發(fā)明實(shí)施例第二方面提供了一種數(shù)據(jù)處理的裝置,包括:
[0010]獲取模塊,用于獲取至少一個(gè)構(gòu)建腳本中各構(gòu)建腳本中的第一編譯目標(biāo)以及與所述第一編譯目標(biāo)為直接依賴(lài)關(guān)系的第二編譯目標(biāo);
[0011 ] 計(jì)算模塊,用于根據(jù)所述各構(gòu)建腳本中的第一編譯目標(biāo)與第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系,計(jì)算所述至少一個(gè)構(gòu)建腳本中各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的依賴(lài)關(guān)系樹(shù),所述依賴(lài)關(guān)系樹(shù)包括所述各第一編譯目標(biāo)和所述各第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系以及間接依賴(lài)關(guān)系;
[0012]編譯模塊,用于當(dāng)檢測(cè)到在所述各第一編譯目標(biāo)或所述各第二編譯目標(biāo)中存在代碼更新時(shí),根據(jù)所述依賴(lài)關(guān)系樹(shù)對(duì)與代碼更新后的編譯目標(biāo)具有直接依賴(lài)關(guān)系或間接依賴(lài)關(guān)系的初始編譯目標(biāo)進(jìn)行重新編譯。
[0013]本發(fā)明實(shí)施例通過(guò)根據(jù)各構(gòu)建腳本中的第一編譯目標(biāo)與第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系,計(jì)算至少一個(gè)構(gòu)建腳本中各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的依賴(lài)關(guān)系樹(shù),依賴(lài)關(guān)系樹(shù)包括各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系以及間接依賴(lài)關(guān)系,從而可以避免各個(gè)編譯目標(biāo)之間出現(xiàn)冗余依賴(lài)的現(xiàn)象,以提高構(gòu)建代碼的效率;而且基于依賴(lài)關(guān)系樹(shù),可以在檢測(cè)到在各第一編譯目標(biāo)或各第二編譯目標(biāo)中存在代碼更新時(shí),快速地查找到與代碼更新后的編譯目標(biāo)具有直接依賴(lài)關(guān)系或間接依賴(lài)關(guān)系的初始編譯目標(biāo),并對(duì)該初始編譯目標(biāo)進(jìn)行重新編譯,從而進(jìn)一步提高了構(gòu)建代碼的效率。
【附圖說(shuō)明】
[0014]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理的方法的流程示意圖;
[0016]圖2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理的方法的流程示意圖;
[0017]圖3是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理的裝置的結(jié)構(gòu)示意圖;
[0018]圖4是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理的裝置的結(jié)構(gòu)示意圖;
[0019]圖5是本發(fā)明實(shí)施例提供的又一種數(shù)據(jù)處理的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0021]請(qǐng)參見(jiàn)圖1,是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理的方法的流程示意圖,所述方法可以包括:
[0022]SlOl,獲取至少一個(gè)構(gòu)建腳本中各構(gòu)建腳本中的第一編譯目標(biāo)以及與所述第一編譯目標(biāo)為直接依賴(lài)關(guān)系的第二編譯目標(biāo);
[0023]具體的,在獲取至少一個(gè)構(gòu)建腳本中各構(gòu)建腳本中的第一編譯目標(biāo)以及與所述第一編譯目標(biāo)為直接依賴(lài)關(guān)系的第二編譯目標(biāo)之前,可先在所述至少一個(gè)構(gòu)建腳本中聲明需要構(gòu)建的目標(biāo)、目標(biāo)的源代碼、以及其直接依賴(lài)的其他目標(biāo),再對(duì)聲明后的各個(gè)構(gòu)建腳本進(jìn)行編譯,以獲取至少一個(gè)構(gòu)建腳本中各構(gòu)建腳本中的第一編譯目標(biāo)以及與所述第一編譯目標(biāo)為直接依賴(lài)關(guān)系的第二編譯目標(biāo)。其中,所述第一編譯目標(biāo)可以為構(gòu)建腳本中所聲明的需要構(gòu)建的目標(biāo),所述第二編譯目標(biāo)可以為與所述第一編譯目標(biāo)為直接依賴(lài)的目標(biāo)。其中,在所述至少一個(gè)構(gòu)建腳本中無(wú)需說(shuō)明如何構(gòu)建,從而可以降低使用難度,以提高開(kāi)發(fā)效率。其中,直接依賴(lài)是指直接引用的關(guān)系,例如,庫(kù)是用于將相似函數(shù)打包在一個(gè)單元中,這些單元就可以為其他開(kāi)發(fā)人員所共享,那么在構(gòu)建程序的過(guò)程中,一個(gè)單元直接引用另一個(gè)單元時(shí),即可說(shuō)明這兩個(gè)單元為直接依賴(lài)關(guān)系。
[0024]可選的,所述構(gòu)建腳本為編譯二進(jìn)制庫(kù)的BWLD文件或編譯二進(jìn)制程序的BWLD文件;所述編譯二進(jìn)制庫(kù)的BWLD文件包括:target的類(lèi)型和名字、源代碼列表、宏定義列表、優(yōu)化選項(xiàng)、額外編譯參數(shù)選項(xiàng)列表、引用頭文件路徑以及對(duì)外提供頭文件路徑;所述編譯二進(jìn)制程序的BUILD文件包括:target的類(lèi)型和名字、源代碼列表以及依賴(lài)代碼列表。其中,所述編譯二進(jìn)制庫(kù)的BUILD文件中的源代碼列表可以為第一編譯目標(biāo),引用頭文件路徑可以為第二編譯目標(biāo);所述編譯二進(jìn)制程序的BUILD文件中的源代碼列表可以為第一編譯目標(biāo),依賴(lài)代碼列表可以為第二編譯目標(biāo)。本實(shí)施例統(tǒng)一化了 BWLD文件的寫(xiě)法以及每個(gè)關(guān)鍵字的定義,即編譯每個(gè)二進(jìn)制庫(kù)的BWLD文件之前都需要先聲明如target的類(lèi)型和名字、源代碼列表、宏定義列表、優(yōu)化選項(xiàng)、額外編譯參數(shù)選項(xiàng)列表、引用頭文件路徑以及對(duì)外提供頭文件路徑這些關(guān)鍵字所對(duì)應(yīng)的內(nèi)容,編譯每個(gè)二進(jìn)制程序的BWLD文件之前都需要先聲明如target的類(lèi)型和名字、源代碼列表以及依賴(lài)代碼列表這些關(guān)鍵字所對(duì)應(yīng)的內(nèi)容。其中,target的類(lèi)型可以包括庫(kù)類(lèi)型、程序類(lèi)型、測(cè)試類(lèi)型、規(guī)則類(lèi)型。
[0025]S102,根據(jù)所述各構(gòu)建腳本中的第一編譯目標(biāo)與第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系,計(jì)算所述至少一個(gè)構(gòu)建腳本中各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的依賴(lài)關(guān)系樹(shù),所述依賴(lài)關(guān)系樹(shù)包括所述各第一編譯目標(biāo)和所述各第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系以及間接依賴(lài)關(guān)系;
[0026]具體的,獲取到所述各構(gòu)建腳本中的第一編譯目標(biāo)與第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系后,可以根據(jù)所述各構(gòu)建腳本中的第一編譯目標(biāo)與第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系,計(jì)算所述至少一個(gè)構(gòu)建腳本中各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的依賴(lài)關(guān)系樹(shù),即計(jì)算各個(gè)第一編譯目標(biāo)和各個(gè)第二編譯目標(biāo)之間的間接依賴(lài)關(guān)系。例如,有3個(gè)構(gòu)建腳本,若第一個(gè)構(gòu)建腳本的第一編譯目標(biāo)為A、第二編譯目標(biāo)為B,則A與B之間的直接依賴(lài)關(guān)系記錄為A->B,第二個(gè)構(gòu)建腳本中的直接依賴(lài)關(guān)系為B->C,第三個(gè)構(gòu)建腳本中的直接依賴(lài)關(guān)系為C->D,根據(jù)這3個(gè)構(gòu)建腳本的直接依賴(lài)關(guān)系,計(jì)算這3個(gè)構(gòu)建腳本中各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的依賴(lài)關(guān)系樹(shù),該依賴(lài)關(guān)系樹(shù)為A->B->C->D,由此可見(jiàn),C和D是A的間接依賴(lài)關(guān)系,D是B的間接依賴(lài)關(guān)系。
[0027]S103,當(dāng)檢測(cè)到在所述各第一編譯目標(biāo)或所述各第二編譯目標(biāo)中存在代碼更新時(shí),根據(jù)所述依賴(lài)關(guān)系樹(shù)對(duì)與代碼更新后的編譯目標(biāo)具有直接依賴(lài)關(guān)系或間接依賴(lài)關(guān)系的初始編譯目標(biāo)進(jìn)行重新編譯;
[0028]具體的,當(dāng)檢測(cè)到在所述各第一編譯目標(biāo)或所述各第二編譯目標(biāo)中存在代碼更新時(shí),可以根據(jù)所述依賴(lài)關(guān)系樹(shù)對(duì)與代碼更新后的編譯目標(biāo)具有直接依賴(lài)關(guān)系或間接依賴(lài)關(guān)系的初始編譯目標(biāo)進(jìn)行重新編譯。例如,依賴(lài)關(guān)系樹(shù)為A->B->C->D,那么編譯目標(biāo)A為依賴(lài)關(guān)系樹(shù)的頂端,由于A與B是直接依賴(lài)關(guān)系,A與(C、D)均為間接依賴(lài)關(guān)系,所以A是(B、C、D)的初始編譯目標(biāo),當(dāng)B或C或D中發(fā)生代碼更新時(shí),即可根據(jù)所述依賴(lài)關(guān)系樹(shù)對(duì)與代碼更新后的編譯目標(biāo)具有直接依賴(lài)關(guān)系或間接依賴(lài)關(guān)系的初始編譯目標(biāo)(A)進(jìn)行重新編譯。
[0029]本發(fā)明實(shí)施例通過(guò)根據(jù)各構(gòu)建腳本中的第一編譯目標(biāo)與第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系,計(jì)算至少一個(gè)構(gòu)建腳本中各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的依賴(lài)關(guān)系樹(shù),依賴(lài)關(guān)系樹(shù)包括各第一編譯目標(biāo)和各第二編譯目標(biāo)之間的直接依賴(lài)關(guān)系以及間接依賴(lài)關(guān)系,從而可以避免各個(gè)編譯目標(biāo)之間出現(xiàn)冗余依賴(lài)的現(xiàn)象,以提高構(gòu)建代碼的效率;而且基于依賴(lài)關(guān)系樹(shù),可以在檢測(cè)到在各第一編譯目標(biāo)或各第二編譯目標(biāo)中存在代碼更新時(shí),快速地查找到與代碼更新后的編譯目標(biāo)具有直接依賴(lài)關(guān)系或間接依賴(lài)關(guān)系的初始編譯目標(biāo),并對(duì)該初始編譯目標(biāo)進(jìn)行重新編譯,從而進(jìn)一步提高了構(gòu)建代碼的效率。
[0030
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1