On Mon, Feb 20, 2012 at 7:25 PM, Bgh Ello <[email protected]> wrote:
>      Thanks for your help on my previous question, especially the comments
> on automatic rules.  I'll experiment with those in due course.  For now, I
> have added some include files.  hello.cpp and inc1.h are in dir1, and inc2.h
> in dir2.  The makefile is now
>
> VPATH = dir1 dir2
> CC = g++
> OPTS = -c -O2 -Wall
> OBJS = hello.o
>
> hello : $(OBJS)
>       $(CC) -o $@ $(OBJS)
>
> hello.o : hello.cpp inc1.h inc2.h
>         $(CC) $(OPTS) $< -o $@
>
> and the output of make is now
>
> g++ -c -O2 -Wall dir1/hello.cpp -o hello.o
> dir1/hello.cpp:6:18: fatal error: inc2.h: No such file or directory
> compilation terminated.
> make: *** [hello.o] Error 1
>
> I don't understand why make doesn't find the prerequisite dir2/inc2.h.
> Any help would be most appreciated.

Make found it just fine; the error message was from the compiler, g++.

You've told make where to look for the files; perhaps you should also
tell g++ where to look by passing it some -I options?

OPTS += $(VPATH:%=-I%)


Philip Guenther

_______________________________________________
Help-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-make

Reply via email to