15

既存の C コードと既存の Makefile があり、これを Eclipse C プロジェクト (Eclipse 3.4 Ganymede を使用) にラップしたいと考えています。コードは次のように構成されています。

メイン ディレクトリ:/Project/Software

ソースとヘッダーファイル:../Project/Software/CodeDir1 ../Project/Software/CodeDir2など..

これまでのところ、次の手順を実行しています。

  1. Eclipse ワークスペースを /Project/ に設定します。
  2. 名前で新しい C プロジェクトを作成しますSoftware--> これで、Eclipse はすべてのソース ファイルなどをプロジェクトに統合します。
  3. [プロパティ] -> [C/C++ ビルド] に移動し、[カスタム ビルド オプション] に設定します。

初めてこれを行うと、すべてが正常に機能します。コンソールに出力を取得すると、すべてがクールです。しかし、「ビルドアイコン」(小さなハンマー)がグレー表示され、もうクリックできません。[プロジェクト プロパティ] -> [C/C++ ビルド] に移動すると、「このプロジェクトは CDT プロジェクトではありません」と表示され、「java.lang.NullPointerException」のエラーが発生します。

作業中のプロジェクトを取得するにはどうすればよいですか?

編集:

単純なバグを回避するために、新しいバージョンの Eclipse (Kepler) で同じことを試しました。同じエラー (「No CDT Project」) が発生しますが、Null Pointer 例外は発生しません。

しかし、問題を少し絞り込むことができます。最初に make プロセスを開始すると、常に機能します。ビルド プロセスが失敗した場合でも、[ビルド プロパティ] に移動できます。完全でエラーのないビルドを1 回実行するとすぐに、この問題が発生します。これに関しては、私の make 呼び出しが Eclipse から行われた場合にのみ発生します。コマンドラインから呼び出すと、日食から実行することができます。

4

4 に答える 4

30

既存の CDT プロジェクトをインポートして、「このプロジェクトは CDT プロジェクトではありません」と表示される場合は、そのプロジェクトが古いバージョンの Eclipse で作成された可能性があり、次のことを行う必要があります。

  • Project Explorerタブでプロジェクトを選択し、
  • [ファイル] -> [新規] -> [C/C++ プロジェクトに変換] をクリックします

これで新しいファイルが追加.cprojectされ、準備完了です。

于 2015-07-15T11:36:15.570 に答える
0

問題の原因は Eclipse にあるのではなく、makefile にあります。

プロジェクト全体のディレクトリ構造は次のとおりです。

Project_Dir\Documentation\
Project_Dir\Output\
Project_Dir\Software\
Project_Dir\Tools\

ソースファイルはすべて\Software\ディレクトリにあります。そこでProject_Dir\Software\、プロジェクト フォルダーとして選択しました。つまり、そこに.project.cprojectファイルが配置されます。

メイクファイル自体も一時的に出力ファイルをフォルダーに書き込み\Software\ます。Software最後に、ディレクトリからすべてのファイルをコピーしますOutput (実際にはmove *.* Project_Dir\Output\コマンド)

このコマンドは Eclipse プロジェクト ファイルも移動していたため、Eclipse がそれらを見つけてプロジェクト プロパティを開くのが困難でした。

2 つのソリューション:

  1. \Project_Dir\とにかくすべてのプロジェクト関連のものであるため、Eclipseのプロジェクトディレクトリをに変更します
  2. makefile に次の 2 行を追加します: move コマンドの前: move コマンドattrib +r +s *.projectattrib -r -s *.project後に。( も同様.cproject)。これにより、メイクファイルがファイルを移動できなくなります
于 2013-09-09T11:49:16.417 に答える