8

CMakeLists.txtプロジェクト用に正しく動作するファイルを定義しました。

BuildCMake GUI を使用して Visual Studio プロジェクトを生成し、同じフォルダー内にあるフォルダーにバイナリ (CMAke キャッシュなど) をビルドするように依頼しますCMakeLists.txt

実行可能ファイルとライブラリを作成する必要がある場所を指定できました。Visual Studio ソリューション ファイルを作成する場所も指定する方法はありますか? ルート ディレクトリに配置したいのですが、同時に CMake が Build ディレクトリに作成する他のすべてのファイルも配置したくありません。

CMake は、私が定義したプロジェクトを作成しますが、CMakeLists.txt他の 2 つのプロジェクト:ALL_BUILDZERO_CHECK. それらのユーティリティは何ですか?ZERO_CHECKコマンドを使用しての作成を回避できましたset_property(GLOBAL PROPERTY USE_FOLDERS On)。の作成も回避する方法はありALL_BUILDますか?

4

2 に答える 2

10

あなたが CMake に切り替えたのはつい最近のことのようです。ちょうど私が CMake を使い始めたときに、まさにこれらの質問が頭に浮かびました。あなたがそれらを投稿した順序でそれらに対処しましょう:

CMake GUI を使用して Visual Studio プロジェクトを生成し、CMakeLists.txt と同じフォルダーにある Build フォルダーにバイナリ (CMAke キャッシュなど) をビルドするように依頼します。

しないでください。アウトオブソース ビルドは常にCMake で行ってください。初めてやったときは変だと思いますが、一度慣れると二度と戻りたくないでしょう。

コードとビルド ファイルが適切に分離されていると、ソース管理の使用が非常に便利になるという 1 つの事実が、これを CMake のキラー機能にしています。

Visual Studio ソリューション ファイルを作成する場所も指定する方法はありますか?

あなたは本当に気にするべきではありません。

ソリューションとプロジェクト ファイルの作成方法を完全に制御する必要があると感じている理由はわかりますが、実際には必要ありません。ソリューションのターゲットをアウトオブソース ビルドのオリジンとして指定するだけで、生成される他のすべてのファイルは忘れてしまいます。心配する必要はありませんし、心配する必要もありません。これはまさに、CMake が処理することになっている種類のものです

自問してみてください: すべてのプロジェクト ファイルの場所を厳選できたら、何が得られるでしょうか? チャンスがあるので、とにかくそれらに触れることはありません。CMakeはあなたの唯一のマスターです...

CMake は、CMakeLists.txt で定義したプロジェクトだけでなく、ALL_BUILD と ZERO_CHECK という 2 つの他のプロジェクトも作成します。それらのユーティリティは何ですか?コマンド set_property(GLOBAL PROPERTY USE_FOLDERS On) を使用して、ZERO_CHECK の作成を回避できました。ALL_BUILD の作成も回避する方法はありますか?

繰り返しますが、本当に気にする必要はありません。CMake は、心配したくない特定の内部ブードゥー教に非常に役立ついくつかのダミー プロジェクトを定義します。最初は奇妙に見えますが、思ったより早く慣れます。適切に機能しないため、それらを捨てようとしないでください。彼らの姿が本当に気になる場合は、ソリューション内のフォルダーに移動して、常にそれらを見る必要がないようにすることを検討してください。

結論: CMake は、手作りの VS ソリューションとはいくつかの点で異なっています。これには慣れるまで時間がかかりますが、最終的には、恐れるよりもはるかに痛みの少ない経験です.

于 2013-11-08T19:32:34.983 に答える