Makefile vpath 不起作用

0909幸福 2016-04-24 09:16:40
代码的结构是这样的
--Makefile
--main.c
--def.h
--src
|
|-----kbd.c



//main.c
#include "def.h"


int main()
{
Hello();

return 0;
}

//def.h
#ifndef DEF_H_INCLUDED
#define DEF_H_INCLUDED

#include <stdio.h>
#include <stdlib.h>

extern void Hello(void);

#endif // DEF_H_INCLUDED



//kbd.c

#include "../def.h"
#include "../command.h"


void Hello(void)
{
printf("Hello,it's kbd!\n");
}




而我的makefile是这样的:
vpath %.c ./ : ./src

objects = main.o kbd.o
edit : $(objects)
gcc -o edit $(objects)
main.o : def.h
kbd.o : def.h
gcc -c $<

.PHONY : clean

clean:
rm *.o



各位前辈,makefile一直编不过啊,请大家看看我的makefile哪地方出问题了?谢谢大家
...全文
297 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
0909幸福 2016-04-25
  • 打赏
  • 举报
回复
大家帮忙看下吧。。。。
0909幸福 2016-04-25
  • 打赏
  • 举报
回复
make后错误是这样的: cc -c -o main.o main.c gcc -c def.h gcc -o edit main.o kbd.o gcc: kbd.o:没有那个文件或目录 make: *** [edit] 错误 1
renwotao2009 2016-04-25
  • 打赏
  • 举报
回复
Make时报什么错误
0909幸福 2016-04-25
  • 打赏
  • 举报
回复
谢谢啦,已经解决了。。。
LubinLew 2016-04-25
  • 打赏
  • 举报
回复

vpath %.c ./ : ./src
 
objects = main.o kbd.o
edit : $(objects)
	gcc -o edit $(objects)

main.o : def.h
kbd.o : def.h


.PHONY : clean
clean:
	-rm -f *.o

0909幸福 2016-04-24
  • 打赏
  • 举报
回复
先自顶一下。

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧