3

Linuxでcmakeをしばらく使用していますが、いくつかの理由でVisualStudioでの作業に移行する必要がありました...

cmakeプロジェクトを生成し、Visual Studioでソリューションをロードできますが、ファイルを追加しようとすると、ソースディレクトリではなく、ビルドファイルの場所に追加されます。これを回避する方法はありますか、それともエクスプローラーで追加し、cmakeビルドファイルを再生成してからソリューションを再度開く必要がありますか?これは少し不格好なようで、私はもっと簡単な方法を望んでいました。

4

2 に答える 2

9

はい、VSではなくCMakeLists.txtファイルを使用してファイルを追加する必要があります。ここにはいくつかの選択肢があります。

推奨される方法は、CMakeListsファイルにすべてのソースファイルを明示的にリストすることです。新しいファイルを追加する場合は、CMakeLists.txtに追加する必要があります。この方法の利点は、CMakeListsファイルを変更した後、ビルド全体が「古くなっている」ため、VSでターゲットをビルドしようとすると、CMakeが再実行され、ファイルが適切なターゲットに追加されることです。

file(GLOB ...)別のオプションは、CMakeのコマンドを利用することです。これにより、指定されたパスでソースが検索され、ソースのリストが自動的に生成されます。利点は、CMakeListsファイルにすべてのファイルを手動でリストするよりも面倒ではないことです。ただし、欠点は、新しいファイルがソースディレクトリに追加された場合、CMakeはソースディレクトリが古くなっていることを認識しないため、CMakeを手動で再実行する必要があることです。私は一般的にこれが問題になるとは思わないと言わなければなりません-ファイルを追加したばかりで、それがVSエクスプローラーに表示されない場合、それはかなり明白です、そして確かにビルド時間によってそれはビルドが失敗します(または、とにかくファイルを使用していません)。

どちらのオプションでも、CMakeを再実行する場合は、VSを閉じる必要がないことに注意してください。

于 2013-03-24T12:02:26.067 に答える
2

Visual Studioを介して新しいファイルを追加するには、[追加]->[新しいアイテム]オプションを選択できます。結果のウィンドウに、「場所」のテキスト入力ボックスが表示されます。これにはデフォルトでビルドディレクトリが指定されていますが、パスはソースツリーのどこかに簡単に変更できます。

于 2013-03-25T08:21:43.653 に答える