проблема с файлом make: всегда выплевывает "Ничего не поделаешь для make.w". - PullRequest
1 голос
/ 14 октября 2010

У меня есть 3 файла Head.cpp, Head.h и Hello.cpp. Я пытаюсь сделать марку для процесса компиляции. Мой make-файл это make.w

Hello :   Head.o Hello.o
          g++ -o Head.o Hello.o

Head.o :  Head.cpp
          g++ -o Head.cpp

Hello.o:  Hello.cpp
          g++ -o Hello.cpp

каждый раз, когда я набираю команду make make.w - я получаю "Ничего не сделать для make.w". Я не понимаю, почему это происходит и как решить то же самое.

Ответы [ 3 ]

2 голосов
/ 14 октября 2010

make make.w означает «Сделать цель make.w в стандартном make-файле с именем Makefile».

Вы хотите указать свой make-файл, поэтому вы хотите make -f make.w

2 голосов
/ 14 октября 2010

Поскольку вы вызываете make с файлом make, отличным от используемого по умолчанию, который является makefile или Makefile, вам необходимо использовать параметр -f как:

make -f make.w
     ^^

Похоже, что вы в настоящее время называете это как:

make make.w

который не работает. Он make указывает сделать target make.w в файле Makefile по умолчанию.

Также При преобразовании из .c в .o необходимо использовать флаг компилятора -c, который указывает компилятору просто компилировать , но не связывать . Также при использовании -c вам не нужно -o, компилятор сгенерирует для вас <filename>.o.

Head.o :  Head.cpp
          g++ -c  Head.cpp
              ^^

Hello.o:  Hello.cpp
          g++ -c  Hello.cpp
              ^^

И, наконец, вам не хватает имени исполняемого файла Hello в строке компиляции:

Hello :   Head.o Hello.o
          g++ -o Head Head.o Hello.o
                 ^^^^
1 голос
/ 14 октября 2010

Вам нужен -f перед именем make-файла.

make -f make.w

Вы также можете указать цель, которая будет построена

make -f make.w Hello
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...