2011-08-16 16 views
28

私はWinXP SP3でCMakeバージョン2.8を使用しています。私がCMakeListsスクリプトを実行するたびに、CMakeはVisual Studio 10コンパイラを使用します。私はしようとしました:CMakeのデフォルトコンパイラの設定

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

成功なし。 CMakeListsでコンパイラを設定することを心配する必要がないように、どのようにMinGWをデフォルトコンパイラとして設定できますか?

+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を起動したときにジェネレータが明示的に指定されていない限り、CMake uses the newest Visual Studio installationをデフォルトジェネレータとして使用します。この動作はハードコードされており、変更することはできません。スクリプトは、システムのPATH上のディレクトリに配置する必要がありますし、CMakeの実行よりも優先すべき

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

:回避策は、次の内容でcmake.batというタイトルのバッチラッパースクリプトを使用することができるよう

cmake.exe

スクリプトは、MinGWをジェネレータとして使用してcmake.exeを呼び出し、他のすべてのパラメータをそれに転送します。

10

あなただけ一般的に、あなたが初めてcmakeの実行時にこれを行うだろう、一度ツールチェーン/出力形式を設定する必要があります(代わりに独自のパラメータを使用することができ、ドットの

cmake -G "MinGW Makefiles" . 

があれば)および/またはソースへのパスを含むことができる。

特に、CMakeを初めて使用する場合は、ウィンドウの下でGUIバージョンを使用してください(cmakeではなくパラメータなしでcmake-guiを実行してください)。

開いたら、パスを設定して[設定]をクリックします。コンパイラが設定されていない場合、それを選択するよう求められます(そうしないと、キャッシュをクリアして再表示させる必要があります)。

アップデートされた設定値は赤色で表示され、一般的なWindowsダイアログボックスを使用してファイルとパスを選択することもできます。

設定が完了し、エラーがなければ、「生成」をクリックしてメイクファイルまたはプロジェクトファイルを作成できます。これらを後で更新するには、cmake-guiを再度使用するか、通常のコマンドラインバージョンcmakeを使用してください。

+2

cmake -G "MinGW Makefiles"の使用に関する注意。 私にとっては、MinGW \ binディレクトリがVisualStudio \ VC \ binディレクトリの後のパスに表示されるようにしなければなりませんでした。 これまでMinGWジェネレータでもGNUのg ++​​ではなくc1.exeコンパイラが使用されていました – odedsh