Итак, я пытаюсь узнать, как make-файлы работают для компиляции программ в c, но я не могу определить что-то, используя gcc и main.o как « OBJS ». У меня есть эта простая основная функция и make-файл в который я пытаюсь определить test
main.c
#include <stdio.h>
int main(){
#ifdef test
printf("ok\n");
#else
printf("not ok\n");
#endif
return 0;
}
makefile
MODULES = ../
OBJS = main.o
CFLAGS = -g -Wall
PROGRAM = defineprog
$(PROGRAM): clean $(OBJS)
gcc -D test $(OBJS) -o $(PROGRAM)
clean:
rm -f $(PROGRAM) $(OBJS)
run: $(PROGRAM)
./$(PROGRAM)
Каждый раз, когда я компилирую свою программу и затем выполняю ее, я всегда получаю вывод «не в порядке», что означает, что тест не определен, кто-нибудь знает, как заставить это работать, используя main.o как « OBJS ».
Спасибо