getWord.o : getWord.c getWord.h
ищет эти файлы в текущем каталоге.
По-видимому, следует использовать GET_WORD
для определения пары дополнительных переменных, а не переопределять их как-то иначе, чем то, чтодано явно в присваивании.
Если вы выясните, как установить INC
в каталог include/
, ваше правило для этих файлов должно выглядеть примерно так:
getWord.o : $(INC)/getWord.c $(INC)/getWord.h
cc -c $^
Обратите внимание, какзависимость от файла в другом каталоге должна включать имя каталога;и как make
на самом деле не будет смотреть на , как создать что-то новое, пока разрешение зависимостей не заставит его (и даже тогда он не знает, что строка в команде, которую он выполняет, равнаодна из зависимостей только потому, что строки идентичны, не говоря уже о том, когда они различны (как в вашей попытке).
Обратите внимание также на использование $^
, чтобы сказать «вещи в зависимостях».Как правило, вы хотите избежать повторения информации - если вы что-то меняете, вы не хотите менять ее во многих местах, потому что ее легко забыть (см. Также DRY принцип.)
...Я не думаю, что профессор хочет файл .c
во включаемом каталоге, хотя на самом деле;мой файл .h
был бы моим предположением.
Кроме того, чтобы просто make
без аргументов создать конкретную цель, поместите ее в качестве первой цели в вашем Makefile
.
Надеюсь, этого достаточно, чтобы помочь вам понять, как решить вашу задачу!