2016-06-27 56 views
1

我正在嘗試使用MinGW作爲編譯器在Windows下製作cmake的hello world測試。 This answer建議運行cmake-G標誌如下:在Windows下使用通過MSYS2安裝的cmake 3.5.2,「MinGW Makefiles」生成器丟失

cmake -G "MinGW Makefiles" . 

但是,如果我這樣做,我得到一個消息說,這是不是一個已知的發電機。 事實上,運行cmake --help,下發電機部分它列出了以下發電機:

enter image description here

,正如你所看到的,「MinGW的Makefile文件」未列出。

如果這是相關的,我已經在我的系統上安裝了MinGW並在通常的文件夾C:\MinGW中運行。我還通過WinBuild和MSYS2安裝了MinGW-w64,同樣在默認安裝文件夾中。 我使用cmake version 3.5.2,通過MSYS2安裝。

爲什麼「MinGW Makefiles」沒有在發電機中列出?

回答

3

只有Windows版本的CMake才知道MinGW MakefilesMSYS Makefiles生成器。

如果您已經下載了MinGW/MSYSCake版本,請嘗試使用Unix Makefiles生成器或者不要使用-G選項(自動檢測您的編譯器工具鏈)。

如果仍然有錯誤,請參閱下面的參考資料。

參考

+0

感謝,這是有道理的。我試圖使用該標誌的原因是我另外得到另一個錯誤,因爲cmake不能識別C編譯器,它是通過MSYS2獲得的mingw64 gcc編譯器,這是我在'CMakeLists.txt'文件中指定的。即使我想使用MSYS2提供的其他工具,我可以使用從其官方網站獲得的'cmake'來構建makefile嗎? – glS

+0

@glS您是否也像我在第一次提供的參考文獻中一樣通過'pacman'安裝CMake?是的,我只下載並安裝了[官方Windows CMake版本](https://cmake.org/download/),從MSYS調用'cmake',到目前爲止還沒有遇到任何問題。對於您的CMake/MinGW/MSYS installtion的基本理智檢查,請參閱[這裏](http://stackoverflow.com/questions/32801638)。我承認我不明白你在'CMakeLists.txt'文件中指定你的GCC編譯器的意見。聽起來像你不應該做的事情。你能否將腳本部分添加到你的問題中? – Florian

+0

是的,我通過MSYS shell提供的'pacman'安裝它。我安裝了'cmake'的官方Windows版本,現在它可以在你[鏈接的答案](http://stackoverflow.com/a/32830625/4063051)的第1點提供的VS最簡單的例子中起作用。這是一個前進的步驟,我現在嘗試使用通過MSYS安裝的mingw。再次感謝! – glS