web-dev-qa-db-ja.com

cmakeとnetbeansはうまくプレイできますか?

私は大きなプロジェクトに取り組んでいます、いくつかは素晴らしいと言うかもしれません。

プロジェクトはcmakeとnetbeansでc ++で開発されています。プロジェクトの更新、ソースファイルの追加または削除を行うたびに、netbeansはcmakeを実行し、新しいプロジェクトを「プロジェクト」リストに追加するという事実を除いて、すべてが正常に機能しています。私はこれをたくさんする傾向があるので、これはやや迷惑です。

サブディレクトリが追加されるたびにnetbeansが新しいプロジェクトを作成しないようにするスマートな方法はありますか?

34

朗報です!

NetBeans 6.8以降、他のconfigureスクリプトと同様に、CMakeは正常に処理されます。

  1. 新しい「既存のソースからC/C++アプリケーション」を作成します。
  2. プロジェクトのディレクトリを指定します(ここでCMakeLists.txtが存在します)。
  3. 「構成モードの選択」で、「自動」を選択します。

そして、NetBeansは必要に応じてcmakeを実行してMakefileを構築します
(または「プロジェクトの再構成」をクリックすると)。

詳細は NetBeansフォーラムの元のスレッド を参照してください。

27
Alba Mendez

CMake-basesプロジェクトはNetBeansで完璧に動作します。

jmendethの答えのバリエーション:

  1. 新しいC/C++ Project with Existing Sourcesを作成します
  2. プロジェクトのパスを設定(=メインのディレクトリCMakeLists.txt
  3. Select Configuration modeセットCustom
  4. クリックNext
  5. 選択Run Configure Script in Subfolder(デフォルトのフォルダーはbuild
  6. 追加の設定がない場合は、[完了]をクリックするまでNextをクリックします
  7. Finishをクリックすると、Cmakeが実行され、プロジェクトがビルドされます

この方法は自動よりも少し長くなりますが、実際には2ティックの設定です。

利点と追加費用の理由:CMakeはすべてのローカルキャッシュファイルを配置しますサブフォルダbuild)に入れて、それらを1つの場所で分離してください-それらを他のプロジェクトのものと混合します。

これらのファイルはプロジェクト専用であり、構成の実行ごとに作成されるため、これによりプロジェクト構造がクリーンに保たれます。

そして追加として:CMakeキャッシュを手動で削除する必要がある場合-これは時々起こります-すべてが入っている単一のディレクトリがあります。

サイドノート:

NetBeans 8.0以降、すべてのCMakeファイルに構文の色分けがあります。

24
ollo

私はこのエラーを受け取りました:「cmakeを開始できませんでした:そのようなファイルまたはディレクトリはありません」

NetBeans-> Preferences-> C/C++(Build Tools)-> CMakeコマンドを/ opt/local/bin/cmakeに設定する必要がありました。

6
berardino

大規模なc ++プロジェクトでCmake、netbeans、SVNを使用していますが、問題はありません。

私は通常、「既存のソースを含むc ++」オプションを使用してプロジェクトを構成し、cmakeによって生成されたmakefileを選択して、使用しているmakeツールがnetbeansに認識されないようにします。次に、作業する必要があるソースが含まれているフォルダのみを選択します。

ソースを更新するたびに、Makefileを更新する必要があります(Netbeansプロジェクトもソースを更新します)。これにより、手動で、またはプロジェクトのビルドコマンドで実行できるようになります: "cmake .. && make"(注意が必要です)ただし、正常に動作します)。お役に立てれば幸いです。

4
JoniPichoni