make: c: команда не найдена - PullRequest
       20

make: c: команда не найдена

1 голос
/ 10 марта 2011

Я пытаюсь запустить мой файл make, однако я получаю следующие две ошибки:

make: c: команда не найдена

и

make: o:команда не найдена

Я пытаюсь сделать это внутри cygwin.У меня установлен g ++ и make, но при запуске файла 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

Ответы [ 2 ]

5 голосов
/ 10 марта 2011

Вам необходимо удалить $ из строк $g++. Он пытается расширить некоторую переменную, которая не существует, и поглощает «$g++ -» из ваших команд.

Синтаксис для использования переменной:

$(CXX) -c main.cpp

В этом случае CXX - это путь к компилятору C ++, который определен для вас. Вы можете изменить его, добавив следующую строку в ваш make-файл:

CXX = g++

Если вы пытаетесь избежать повторного запуска команды make, используйте @ вместо $.

1 голос
/ 10 марта 2011

$ g ++ не определен в этом make-файле, поэтому команда становится

-o MergeSort main.o MergeSort.o

и

-c main.cpp

Либо удалите $ из $ g ++ и используйте g ++, либо определите переменную в вашем make-файле.

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
...