• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Eclipse 3.5 Galileo + CDT + cygwinで)

Eclipse 3.5 Galileo + CDT + cygwinでCやC++のプログラムを作成する方法

このQ&Aのポイント
  • Eclipse 3.5 Galileo + CDT + cygwinを使用してCやC++のプログラムを作成する方法についての質問です。
  • ビルドが通らない問題に関して、Makefileやプロジェクトの設定に問題がある可能性があります。
  • cygwin上でmakeコマンドを実行するとビルドできるため、Makefileの設定を見直す必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Yanch
  • ベストアンサー率50% (114/225)
回答No.2

手前でも、試してみました。 手前では、特に問題なく、ビルドも実行も出来ましたが、 ビルド時のメッセージに違いがあるみたいです。 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」とかを作っちゃったのではないですか?

yossy_sas2000
質問者

お礼

ありがとうございます。 その通りでした。helloをターゲットにしていました。 allにしたら、コンパイルは通ったのですが、 「必要なプロジェクトにエラーがあります。起動しますか?」と聞かれ、 「はい」を押すと、無事に実行されるみたですが、「問題」のビューに 「make; ***No rule to make target `all'」と表示されます。 何ででしょう?

その他の回答 (2)

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.3

> 「make; ***No rule to make target `all'」と表示されます。 > 何ででしょう? make ターゲット「all」のルールが無いと言っているみたいです。 Makefile を編集したんじゃないですか?

yossy_sas2000
質問者

お礼

すいません、自己解決しました。 プロジェクトのプロパティーの[C/C++ビルド]-[ビルダー設定]でビルド・ディレクトリーをMakefileがある場所に設定したら、エラーが出なくなりました。 ありがとうございました。

yossy_sas2000
質問者

補足

ありがとうございます。 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されて、失敗している様です。 [プロジェクト]-[自動的にビルド]のチェックは外しているんですが・・・。

回答No.1

hello.cにある > void edajima(void); を extern void edajima(void); に変えてみてください。 同じファイルの中に無いものはexternで外部参照を宣言しておく必要があります。

yossy_sas2000
質問者

補足

ありがとうございます。 extern void edajima(void); に変えましたが、結果は同じでした。 gcc -c hello.c の後に gcc hello.o -o hello となってしまい、 gcc -c edajima.c の処理が走らないのは、なぜでしょうか?