Hi, I have encounter this stragne behaviour. It is properly due to my writing of the Makefile. But how do I solve this kind of problem? I want the object files to be placed in the object directory and latter link against them. I am running make 2.79.1 under Linux 2.2.17 (slackware 7.1) with gcc 2.95.2. I have attached a minimum test case. you first may need to create a ./obj directory before making the file. The problem I encounter is that I always fail on the first attemt to make the file. but second time it is alright. first time run: gcc -c -o ./obj/hello.o hello.c gcc -o hello hello.o gcc: hello.o: No such file or directory gcc: No input files make: *** [hello] Error 1 second time: gcc -o hello ./obj/hello.o
#include <stdio.h> int main(void) { printf("hello world\n"); return 0; }
vpath %.o ./obj hello: hello.o gcc -o $@ $< %.o: %.c gcc -c -o ./obj/$@ $<