2016-12-03 61 views
-1

我有一個名爲「功能/」其下所有的C++文件所在目錄下的兩套C++二進制文件。是否有可能編制兩套二進制文件(比如B1,B2),兩組在功能/,每組使用兩臺不同的機器M1和M2編譯?即,使用M1生成B1,使用M2生成B2。編譯同一目錄

我想實現的是,當我在M1上工作時,我應該能夠加載B1和調試。同樣,當我在M2上工作時,我加載B2並進行調試。

我現在面臨的問題是這樣的:假設 M1是本地機器,M2是遠程計算機。 M1和M2有不同的環境。 我在本地機器上的M1和我發現了一個錯誤。我編輯「功能/ f1.cc」,做一個增量重編譯,並修復了這個bug。第二天我登錄到M2。由於「feature/f1.cc」被編輯了,我將不得不重新編譯。但是,由於我在M2上,所以在M1上編譯的二進制文件將不再適用於M2。因此,我必須在M2上從頭開始編譯「特性/」下的每個文件。從頭開始編譯需要1個小時。如果我有兩組二進制文件,每臺機器一臺,那麼我可以進行增量編譯,只需要5秒。

+0

使用'CMake'生成的解決方案和源代碼構建,我的構建方式如下。對於共享源代碼樹,我有一個源代碼和一個以上的二叉樹(具有不同的設置和可能不同的編譯器/工具箱)。 – drescherjm

+0

只共享源代碼而不是二進制文件。 – Galik

+1

請考慮閱讀版本控制系統,如[git](https://git-scm.com/)。 – Galik

回答

0

如果您有.obj文件或.o文件的不同中介文件夾,它可以工作,但這是最糟糕的解決方案。 版本控制將很好地解決這個問題,CI將通過編譯過夜,運行測試來幫助你...