- ベストアンサー
Eclipse 3.5 Galileo + CDT + cygwinでCやC++のプログラムを作成する方法
- Eclipse 3.5 Galileo + CDT + cygwinを使用してCやC++のプログラムを作成する方法についての質問です。
- ビルドが通らない問題に関して、Makefileやプロジェクトの設定に問題がある可能性があります。
- cygwin上でmakeコマンドを実行するとビルドできるため、Makefileの設定を見直す必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
手前でも、試してみました。 手前では、特に問題なく、ビルドも実行も出来ましたが、 ビルド時のメッセージに違いがあるみたいです。 make all gcc -c edajima.c gcc -c hello.c gcc -o hello.exe edajima.o hello.o と言う風なビルド時のメッセージでした。 ので、もしかすると、 > (4)Eclipseのプロジェクトエクスプローラで、Makefileを右クリックし、[Makeターゲット]-[作成] > でMakeターゲットを作成しました。 作成するべきMakeターゲットは「all」であるはずなんですが、 「hello」とかを作っちゃったのではないですか?
その他の回答 (2)
- Yanch
- ベストアンサー率50% (114/225)
> 「make; ***No rule to make target `all'」と表示されます。 > 何ででしょう? make ターゲット「all」のルールが無いと言っているみたいです。 Makefile を編集したんじゃないですか?
お礼
すいません、自己解決しました。 プロジェクトのプロパティーの[C/C++ビルド]-[ビルダー設定]でビルド・ディレクトリーをMakefileがある場所に設定したら、エラーが出なくなりました。 ありがとうございました。
補足
ありがとうございます。 Makefileは、変更していないんですよね・・・・。 一旦、cleanを実行して、allを実行すると、エラーが無く、コンパイルは通るんです。 all実行時のコンソールの内容は、下記のようになります。 ---------------------------- make all g++ -c edajima.c g++ -c hello.c g++ -o hello.exe edajima.o hello.o ---------------------------- その後、Eclipseの実行を押すと、 「必要なプロジェクトにエラーがあります。起動しますか?」と表示されます。 この時のコンソールの内容は、下記のようになります。 ---------------------------- make all make: *** No rule to make target `all'. Stop. ---------------------------- なぜか、実行時に再度make allされて、失敗している様です。 [プロジェクト]-[自動的にビルド]のチェックは外しているんですが・・・。
- magicalpass
- ベストアンサー率58% (378/648)
hello.cにある > void edajima(void); を extern void edajima(void); に変えてみてください。 同じファイルの中に無いものはexternで外部参照を宣言しておく必要があります。
補足
ありがとうございます。 extern void edajima(void); に変えましたが、結果は同じでした。 gcc -c hello.c の後に gcc hello.o -o hello となってしまい、 gcc -c edajima.c の処理が走らないのは、なぜでしょうか?
お礼
ありがとうございます。 その通りでした。helloをターゲットにしていました。 allにしたら、コンパイルは通ったのですが、 「必要なプロジェクトにエラーがあります。起動しますか?」と聞かれ、 「はい」を押すと、無事に実行されるみたですが、「問題」のビューに 「make; ***No rule to make target `all'」と表示されます。 何ででしょう?