2011-03-10 5 views
1

私はしかし、私は、次の2つのエラーを取得しています、私のメイクファイルを実行しようとしていますが見つかりませんO :コマンドが見つかりませんメイク:C:</p> <p>メイク:C:</p> <p>と</p> <p>メイクを見つけていないコマンド:コマンドは

私はこれをcygwinの中で実行しようとしています。私はg ++をインストールしていますが、makeファイルを実行するとこれらのエラーが発生します。

アイデア?

メイク:

all: MergeSort clean 

MergeSort: main.o MergeSort.o 
    $g++ -o MergeSort main.o MergeSort.o 

main.o: main.cpp MergeSort.h 
    $g++ -c main.cpp 

MergeSort.o: MergeSort.cpp MergeSort.h 
    $g++ -c MergeSort.cpp 

clean: 
    rm -rf *o 

cleanall: 
    rm -rf *o *exe 
+0

ファイルには...? –

+1

あなたのメイクファイルとその実行方法を投稿してください。 –

+0

http://codepad.org/UPInzxwgこれはmakeファイルであり、私はそこにあるディレクトリに「make」と入力して実行しています(私のファイルとそこにあるメイクファイルのみです)。 – Matt

答えて

5

あなたは$g++ラインから$を削除する必要があります。それは存在しない変数を拡張しようとしており、あなたのコマンドから "$g++ -"を呑み込んでいます。

変数を使用するための構文は次のとおりです。この場合、

$(CXX) -c main.cpp 

CXXはあなたのために定義されているC++コンパイラへのパスです。あなたのメイクファイルに次の行を追加して、それを変更することができます。

CXX = g++ 

コマンドmakeが実行されているエコーバックを回避しようとしている場合は、代わりに$@を使用しています。

+0

あなたの助けをありがとう、これは完全に働いた。 – Matt

1
コマンドは

-o MergeSort main.o MergeSort.o 

-c main.cpp 

$ G ++から$をドロップするとg ++を使用、またはあなたのメイクファイルで変数を定義するのどちらかになるように

$ G ++は、そのメイクファイルで定義されていません。

CXX = g++ 
all: MergeSort clean 

MergeSort: main.o MergeSort.o 
    $CXX -o MergeSort main.o MergeSort.o 

main.o: main.cpp MergeSort.h 
    $CXX -c main.cpp 

MergeSort.o: MergeSort.cpp MergeSort.h 
    $CXX -c MergeSort.cpp 

clean: 
    rm -rf *o 

cleanall: 
    rm -rf *o *exe