並行編譯加快VS C 專案的編譯速度

2021-06-05 03:29:13 字數 1283 閱讀 5269

最近編譯的專案都比較大,話說自己的電腦配置還行,但編譯所花的時間還是很長,遇到需要重新編譯整個專案的時候真的有回宿舍睡一覺的衝動。昨天一不小心被我發現了一款軟體xoreax incredibuild 今天用了一下,實在是太爽了,我把我們辦公室的機器都連了起來,其中還有一台工作站,總共加起來22個cup核,我試了一下實在是太拉風了。

以下引用自文字表達稍有修改

加速編譯原理:

xoreax incredibuild是分布式編譯(多執行緒處理)工具,也稱之為聯合編譯.如果區域網內存在多台電腦安裝了這個軟體(不要求安裝vs),在編譯c/c++時,它會查詢區域網中空閒的cpu,並將原始檔發到空閒cpu一起編譯,從而大大縮短了大工程的編譯時間.

incredibuild 分為服務端(coordinator)和客戶端(agent).服務端是協調任務的分配,客戶端把分到手的任務編譯後再返還回任務請求者,不是伺服器, 服務端只負責分配工作,之後客戶端之間進行p2p的操作,如果二個客戶端建立好鏈結後,此時再與服務端斷開也不會影響他們之間的編譯。(參考:)

安裝方法:

1) 服務端(coordinator)的安裝:

運 行incredibuild安裝程式,選擇install incredibuild,並點next下一步.同意那什麼license agreement繼續下一步.來到安裝元件選擇(component selection).這裡做為服務端我們要鉤先上incredibuild coordinator.這裡是乙個核取方塊,一般來說服務端也可以參與編譯工作,如果不想讓服務端參與編譯工作的話,就把上面的incredibuild agent前的鉤點掉就可以

繼續下一步,選擇安裝路徑,和使用的一些埠號.參與編譯的cpu數(這個只有鉤選了agent後才會有)等,這些使用預設的就可以了.之後安裝完成.incredibuild的服務端就安裝好了.

2) 客戶端(agent)的安裝:

在其它的電腦上,執行incredibuild的安裝程式,執行到安裝元件選擇(component selection),只鉤選incredibuild agnet並下一步

填好之後下一步,它會與伺服器進行驗證一下.然後設定一下編譯通訊的埠之類的.這與網內安裝的其它的一至就行了,一般情況都使用預設.然後選擇參與編譯的cpu數.最後安裝就行了.

到這步,基本上伺服器與客戶端都安裝完成.在coordinatormonitor中可以看到各成員的狀態.(注:我的看不到下面的介面,不影響功能)

開啟vs你將會發現選單欄上多出了一項incredibuild的選項.這就是在「incredibuild」選單下進行聯合編譯了. 

以下是編譯介面:(是不是很酷  o(∩_∩)o~)

加快Qt編譯

讀帖綜合而來 qt中有乙個stable.h標頭檔案中有很多的常用qt類 比如 include include 用類似mfc的預編譯處理標頭檔案機制,只需要在.pro檔案中加入一行 precompiled header stable.h注意 mfc是預設開啟預編譯處理標頭檔案 pch 就是vc的特性 ...

putty 並行編譯

剛開始把omp和mpi搞不清,以為是一種訊息,其實是兩種,兩種!然後各種混亂各種混亂 omp 編譯 gcc fopenmp c o classname classname是編譯後的class檔案的名字,可以任取,o 就是說明這之後classname是編譯檔案的名字 執行 classname mpi ...

makefile j 並行編譯

make j n 是專案較大時解決編譯時間較長的一種方案,也有看到部落格提到這個n的設定最好為多核處理器的核數目 1 並行同時會遇到很多問題,比如我們的程序,程序的同步和互斥就是個很複雜的問題 如果把並行引入到makefile中,也需要考慮同樣的問題,簡單來說,目標的依賴和偽目標就類似程序的同步,l...