我在WinXP SP3上使用CMake版本2.8。每當我運行我的CMakeLists腳本默認CMake使用Visual Studio 10編譯器。我試過:在CMake中設置默認編譯器
SET(CMAKE_CXX_COMPILER "C:/MinGW/bin/g++")
沒有成功。我如何將MinGW設置爲我的默認編譯器,以便我不必擔心在CMakeLists中設置編譯器?
我在WinXP SP3上使用CMake版本2.8。每當我運行我的CMakeLists腳本默認CMake使用Visual Studio 10編譯器。我試過:在CMake中設置默認編譯器
SET(CMAKE_CXX_COMPILER "C:/MinGW/bin/g++")
沒有成功。我如何將MinGW設置爲我的默認編譯器,以便我不必擔心在CMakeLists中設置編譯器?
在Windows CMake uses the newest Visual Studio installation作爲默認生成器,除非調用CMake時顯式指定生成器。這種行爲是硬編碼的,不能改變。
作爲一種變通,你可以使用名爲cmake.bat
具有以下內容一批包裝腳本:
@cmake.exe -G "MinGW Makefiles" %*
腳本應放置在一個目錄上的系統路徑,應該優先於CMake的可執行文件cmake.exe
。
該腳本使用MinGW作爲生成器調用cmake.exe
,並將所有其他參數轉發給它。
你只需要設定工具鏈/輸出格式一次,通常你會做這在首次運行cmake的:
cmake -G "MinGW Makefiles" .
相反,你可以使用自己的參數點(如果有的話)和/或到源的路徑。
作爲一種替代方法,尤其是當您剛接觸CMake時,請使用Windows下的GUI版本(運行cmake-gui
,不帶參數而不是cmake
)。
打開後,設置路徑並點擊「配置」。如果沒有編譯器設置,它會要求你選擇一個(否則你必須清除緩存以使其重新出現)。
更新後的配置值將顯示爲紅色,並且還允許您使用常用Windows對話框選擇文件和路徑。
一旦配置完成且沒有錯誤,您可以點擊「生成」來創建您的生成文件或項目文件。要稍後更新這些,您可以再次使用cmake-gui
,或者只使用通常的命令行版本cmake
。
關於使用cmake -G「MinGW Makefiles」的說明。 至少對我來說,我必須確保MinGW \ bin目錄出現在VisualStudio \ VC \ bin目錄之後的路徑中。 在此之前,即使使用MinGW生成器,也使用c1.exe編譯器代替GNU中的g ++ – odedsh
請不要在CMakeLists.txt文件中設置CMAKE_CXX_COMPILER。關於如何更改編譯器,請參見這個wiki頁面:http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_use_a_different_compiler.3F - 另外,請注意,一旦將編譯器緩存到給定的構建樹中,就無法更改編譯器。擦除構建樹或使用新的構建樹,然後重新編譯一個不同的編譯器。 – DLRdave