日期:2014-05-16  浏览次数:20583 次

makefile 多路径下编译失败
错误提示:
make: *** No rule to make target `user.c', needed by `user.o'. Stop.
请问如何才能实现多目录的编译??请指教一下,谢谢!!!
文件结构
E:.
│ makefile
│ makefile.bak
│ 新建 Microsoft Word 文档.doc

├─include
│ user.h
│ user.h.bak

└─src
  app.c
  app.c.bak
  user.c
  user.c.bak
makefile脚本
Python code

CC = g++
OBJ = user.o app.o
#vpath %.h /include
#vpath %.c /src
VPATH=/src:/include
app:$(OBJ)
    $(CC) -o app $(OBJ)
user.o:user.c
    $(CC) -c user.c
app.o:app.c  user.h
    $(CC) -c app.c
clean:
    rm *.o app


inclue目录下代码
C/C++ code

//user.h
#include <stdio.h>
void PrintHello();


src目录代码
C/C++ code

//user.c
#include "user.h"
void PrintHello()
{
    printf("hello ,it is my makefile test\n");
}


C/C++ code

//app.c
#include "user.h"
int main()
{
  PrintHello();    
}



------解决方案--------------------
探讨

引用:
对于头 必须 -I./include

能不能讲的更详细一点呢。在什么地方加 -I ./include
我另外一个问题就是已经将PATH变量加上了头文件的路径,但是没有效果