0

Eclipse を使用してプロジェクトをビルドすると、Makefile に関して次のエラーが表示されます:µ

Type make: *** No rule to make target `hello.exe', needed by `all'.  Stop.

私のメイクファイルはこれです:

all: hello

hello: main.o factorial.o hello.o
   g++ main.o factorial.o hello.o -o hello

main.o: main.cpp
   g++ -c main.cpp

factorial.o: factorial.cpp
   g++ -c factorial.cpp

hello.o: hello.cpp
   g++ -c hello.cpp

clean:
   rm -rf *o hello

誰かが私の間違いを知っていますか? 前もって感謝します。

4

2 に答える 2

0

第一に、Eclipse での開発を頑張ってください。そのためには、多くの Zen が必要です。

2 つ目は、makefile の読み方を簡単にまとめたものです。

target: requiredTarget(optional)
 how to generate the target

したがって、ご覧のとおり、メイクファイルの最初の行を読むことは、「allという名前のターゲットがあり、このターゲットを生成するにはターゲットhelloが必要です」と言っているようなものです。

現在、ターゲットallは特別なものであり、暗黙的なものであるため、あなたまたはあなたのIDEがmakeシェルmake allを入力するだけで暗示されます(もちろん、でターゲットを指定できます。makeビルドターゲットが指定されていない場合、特別なケースが適用されますコマンドライン経由)。

チェーンは、または常にターゲットのビルドにつながるmake明示的なもので始まり、ターゲットはターゲットを呼び出しますが、Windows を使用しているため、接尾辞が自動的に追加され、という名前のターゲットが見つかりません。make allallallhello.exemakehello.exe

基本的に、OS 固有のビルド手順を管理する必要があり、その makefile を編集してこれを機能させる必要があります。または、Eclipse に詳しい人が、このプラットフォーム固有を管理するための適切な makefile 関連のオプションがあるかどうかを確認するのを待つことができます。もの。

良い紹介はhttp://www.cprogramming.com/tutorial/makefiles.htmlです

C++ 開発用の QTcreator を検討してください。

于 2013-03-06T11:38:26.507 に答える
0

Eclipseについてはわかりませんが、Makefileあなたが持っているものは何でもLinuxでうまく動作します。このようにターゲット名を変更allしてチェックアウトしてみてください

all: hello.exe

hello.exe: main.o factorial.o hello.o

g++ main.o factorial.o hello.o -o hello.exe

于 2013-03-06T11:44:02.900 に答える