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/$@ $<

Reply via email to