2011-03-05 23 views
9

例如我應該如何同時構建發行版和調試版?我想答案利用緩存變量和它們的某種「集合」。 是從緩存參數中獲取配置參數的常用方法,不是嗎?如果答案是肯定的,我應該如何以最好的方式使用它們的幾個「集合」? 非常感謝!如何使用CMake一次構建多個配置?

回答

10

您沒有指定您正在討論的平臺。基於Makefile的生成器一次只能構建一個配置,而構建多個配置的正常方式是使用單獨的構建樹,例如,一個用於英特爾的64位Linux,一個用於32位Windows等。大多數CMake項目都建議不要使用源代碼構建,並且假設您正確編寫了CMakeLists文件,您可以擁有〜/ src/YourProject和〜/ build/YourProject - 釋放,〜/ build/YourProject-Debug。

這是建議的方式,假設您的源代碼樹中沒有任何CMakeCache.txt等。然後,您可以在調試目錄中運行cmake -DCMAKE_BUILD_TYPE:STRING = Debug〜/ src/YourProject,以及類似的版本。這樣做的好處是您可以在適當的配置下指定相關的項目。

Boost CMake項目還探索了使用庫名稱混合來區分相同構建樹中的所有配置。如果您必須在同一個構建樹中構建所有配置,這可能值得一看。

5

(同胞的Google)

要小心,不要混淆構建類型構建配置的。

如果你真的意味着「生成類型」,如調試釋放,並希望在同一時間來建立它們,然後CMake的常見問題給出了一個答案:How can I build multiple modes without switching

基本上,它涉及到使用幾種OUT-源代碼構建。

+4

「build type」和「build configuration」有什麼區別? – 2015-04-15 19:56:09

+1

「類型」又名「模式」和「配置」基本上是爲不同工具創建調試和發佈版本的方法。配置僅適用於支持它的工具,例如Visual Studio。模式通常也用於調試和發佈樣式的編譯,但cmake實現它們以便在單獨的生成文件夾中生成,因爲make不具有VS所具有的相同的配置支持樣式,即從配置下拉列表中選擇構建類型/配置在GUI中。 – gnac 2016-03-17 04:44:12