当前位置: 技术问答>linux和unix
makefile 多路径下编译失败
来源: 互联网 发布时间:2017-02-12
本文导语: 错误提示: make: *** No rule to make target `user.c', needed by `user.o'. Stop. 请问如何才能实现多目录的编译??请指教一下,谢谢!!! 文件结构 E:. │ makefile │ makefile.bak │ 新建 Microsoft Word 文档.doc │ ├...
错误提示:
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脚本
inclue目录下代码
src目录代码
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脚本
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目录下代码
//user.h
#include
void PrintHello();
src目录代码
//user.c
#include "user.h"
void PrintHello()
{
printf("hello ,it is my makefile testn");
}
//app.c
#include "user.h"
int main()
{
PrintHello();
}
|
编译的时候传
比如$(CC) -o app $(OBJ) -I./include