Я уже знаю разницу между заголовочным файлом и библиотекой. Однако, когда я пишу свой make-файл, у меня возникают некоторые трудности с принятием решения о том, следует ли мне помещать что-либо в качестве зависимости файла или просто в правило связывания.
Например: у меня есть 2 простых файла:
main.c:
#include <stdio.h>
main(){
printf("this is the sine or 90");
sinus(90);
}
и func.c:
#include <math.h>
sinus(int num){
return sin(num);
}
и мой make-файл:
main: main.o func.o
gcc main.o func.o -lm -o main
func.o: func.c
main.o: main.c
Ну, мой вопрос: почему этот make-файл работает, а этот нет:
main: main.o func.o
gcc main.o func.o -lm -o main
func.o: func.c math.h
main.o: main.c