#c #makefile #mingw
#c #makefile #mingw
Вопрос:
Я понимаю, что этот тип вопроса задавался ранее, однако я искал везде и не мог найти решения.
Я пытаюсь вызвать makefile с помощью утилиты make от MinGW, однако я продолжаю сталкиваться с этой ошибкой:
D:Aufgabe 4>mingw32-make -f aufgabe4.make mingw32-make: * Нет правила для создания целевого
half_adder.o,', needed by
объекта aufgabe4.out’. Стоп.’
Это содержимое файла makefile:
aufgabe4.out : half_adder.o, adder.o, program.o
g -o aufgabe4.out half_adder.o adder.o program.o
half_adder.o: half_adder.h half_adder.cpp
g -c half_adder.cpp
adder.o: half_adder.h half_adder.cpp adder.h adder.cpp
g -c adder.cpp
program.o: half_adder.h adder.h program.cpp
g -c program.cpp
clean:
rm *.o aufgabe4.out
Это содержимое каталога:
D:Aufgabe 4>dir
Volume in drive D has no label.
Volume Serial Number is 6E0B-16A3
Directory of D:Aufgabe 4
11/08/2011 12:29 PM <DIR> .
11/08/2011 12:29 PM <DIR> ..
11/08/2011 12:02 PM 381 adder.cpp
11/08/2011 11:52 AM 88 adder.h
11/08/2011 01:01 PM 346 aufgabe4.make
11/08/2011 11:56 AM 171 half_adder.cpp
11/08/2011 11:54 AM 78 half_adder.h
11/08/2011 12:15 PM 421 program.cpp
6 File(s) 1,485 bytes
2 Dir(s) 2,241,265,664 bytes free
Я был бы признателен за любую помощь или предложение.
Спасибо.
Комментарии:
1.
adder.o
Действительно ли это зависит отhalf_adder.cpp
? Еслиadder.cpp
включает толькоhalf_adder.h
файл, то cpp-файл в правиле не нужен.2. Да, adder.cpp полагается на функции, реализованные в half_adder.cpp . Я удалю файл .cpp из правила, как вы предложили. Спасибо!
Ответ №1:
aufgabe4.out : half_adder.o, adder.o, program.o
Уберите запятые.
aufgabe4.out : half_adder.o adder.o program.o
Ответ №2:
Удалите «,» из первой строки makefile.
Ответ №3:
Первая строка вашего Makefile написана плохо. Измените его на это:
aufgabe4.out : half_adder.o adder.o program.o
Вы не можете использовать запятую для разделения целей. Используйте только пробелы.
Ответ №4:
Ваш make, вероятно, является GNU make, вы могли бы отладить его с помощью make --debug=b