2011-08-16 195 views
28

我在WinXP SP3上使用CMake版本2.8。每當我運行我的CMakeLists腳本默認CMake使用Visual Studio 10編譯器。我試過:在CMake中設置默認編譯器

SET(CMAKE_CXX_COMPILER "C:/MinGW/bin/g++") 

沒有成功。我如何將MinGW設置爲我的默認編譯器,以便我不必擔心在CMakeLists中設置編譯器?

+12

請不要在CMakeLists.txt文件中設置CMAKE_CXX_COMPILER。關於如何更改編譯器,請參見這個wiki頁面:http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_use_a_different_compiler.3F - 另外,請注意,一旦將編譯器緩存到給定的構建樹中,就無法更改編譯器。擦除構建樹或使用新的構建樹,然後重新編譯一個不同的編譯器。 – DLRdave

回答

23

在Windows CMake uses the newest Visual Studio installation作爲默認生成器,除非調用CMake時顯式指定生成器。這種行爲是硬編碼的,不能改變。

作爲一種變通,你可以使用名爲cmake.bat具有以下內容一批包裝腳本:

@cmake.exe -G "MinGW Makefiles" %* 

腳本應放置在一個目錄上的系統路徑,應該優先於CMake的可執行文件cmake.exe

該腳本使用MinGW作爲生成器調用cmake.exe,並將所有其他參數轉發給它。

10

你只需要設定工具鏈/輸出格式一次,通常你會做這在首次運行cmake的:

cmake -G "MinGW Makefiles" . 

相反,你可以使用自己的參數點(如果有的話)和/或到源的路徑。

作爲一種替代方法,尤其是當您剛接觸CMake時,請使用Windows下的GUI版本(運行cmake-gui,不帶參數而不是cmake)。

打開後,設置路徑並點擊「配置」。如果沒有編譯器設置,它會要求你選擇一個(否則你必須清除緩存以使其重新出現)。

更新後的配置值將顯示爲紅色,並且還允許您使用常用Windows對話框選擇文件和路徑。

一旦配置完成且沒有錯誤,您可以點擊「生成」來創建您的生成文件或項目文件。要稍後更新這些,您可以再次使用cmake-gui,或者只使用通常的命令行版本cmake

+2

關於使用cmake -G「MinGW Makefiles」的說明。 至少對我來說,我必須確保MinGW \ bin目錄出現在VisualStudio \ VC \ bin目錄之後的路徑中。 在此之前,即使使用MinGW生成器,也使用c1.exe編譯器代替GNU中的g ++ – odedsh

相關問題