web-dev-qa-db-ja.com

CMakeでデフォルトコンパイラを設定する

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

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

成功せずに。 CMakeListsでコンパイラを設定する必要がないように、MinGWをデフォルトのコンパイラとして設定するにはどうすればよいですか?

35
Amani

CMakeバージョン3.15以降では、 CMAKE_GENERATOR システムで使用されるデフォルトのジェネレーターを指定する環境変数。

1
ComicSansMS

Windows CMakeでは、CMakeの呼び出し時にジェネレーターが明示的に指定されていない限り、デフォルトのジェネレーターとして 最新のVisual Studioインストールを使用 が使用されます。この動作はハードコーディングされており、変更できません。

回避策として、cmake.batというタイトルのバッチラッパースクリプトを次の内容で使用できます。

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

スクリプトは、システムPATH上のディレクトリに配置し、CMake実行可能ファイルcmake.exeよりも優先する必要があります。

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

26
sakra

ツールチェーン/出力形式を設定する必要があるのは1回だけです。通常は、初めてcmakeを実行するときにこれを行います。

cmake -G "MinGW Makefiles" .

ドットの代わりに、独自のパラメーター(存在する場合)および/またはソースへのパスを使用できます。

別の方法として、特にCMakeを初めて使用する場合は、WindowsでGUIバージョンを使用します(cmakeの代わりにcmake-guiをパラメーターなしで実行します)。

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

更新された構成値は赤で表示され、一般的なWindowsダイアログボックスを使用してファイルとパスを選択することもできます。

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

15
Mario