Я попробовал следующий пример программы, чтобы понять использование make-файлов при компиляции.
main.c
#include<stdio.h>
#include<functions.h>
int main()
{
print_hello();
printf("\nThe Factorial is : %d\n",factorial(5));
return 0;
}
hello.c
#include<stdio.h>
#include<functions.h>
void print_hello()
{
printf("\nHello world!\n");
}
factorial.c
#include<stdio.h>
#include<functions.h>
void factorial(int n)
{
if(n!=1){
return(n*factorial(n-1));
}
else
return 1;
}
functions.h
#include<stdio.h>
void print_hello();
int factorial(int n);
makefile
exec : ./compile
compile : main.o hello.o factorial.o
gcc -o compile
main.o : main.c functions.h
gcc -c main.c
hello.o : hello.c functions.h
gcc -c hello.c
factorial.o : factorial.c functions.h
gcc -c factorial.c
Ошибка:
cheetah@desktop:~/make_example$ make compile
gcc -c main.c
main.c:2:22: error: functions.h: No such file or directory
make: *** [main.o] Error 1
cheetah@desktop:~/make_example$
РЕДАКТИРОВАНИЕ:
gcc -c main.c
gcc -c hello.c
gcc -c factorial.c
gcc -o compile
gcc: no input files
make: *** [compile] Error 1
Пожалуйста, помогите мне понять, почему он выдает ошибку как functions.h не найден, поскольку я включил ее в свой make-файл.