makefile包含头文件问题 100

我在桌面创建test.c,内容如下:#include<stdio.h>#include"myheader.h"intmain(){f();}又在桌面创建文件夹header... 我在桌面创建test.c,内容如下:
#include <stdio.h>
#include "myheader.h"

int main()
{
f();
}
又在桌面创建文件夹header1,header1里创建文件myheader.h内容如下:
void f()
{
printf( "h1\n" );
}
回到桌面创建makefile,内容如下:
test:test.o
gcc -o test test.o
test.o:test.c myheader.h
gcc -c test.c -I./header1/myheader.h
运行make提示:
*** No rule to make target 'myheader.h', needed by 'test.o'。 停止。
gcc -c test.c -I./header1/myheader.h换成gcc -c test.c -include ./header1/myheader.h结果也一样
我如果在桌面再创建一个一样的myheader.h运行结果为
././header1/myheader.h:1:6: note: previous definition of ‘f’ was here
void f()
^
makefile:4: recipe for target 'test.o' failed
make: *** [test.o] Error 1

提示我重复定义,说明我的-include ./header1/myheader.h是起作用的
可是为什么之前会有错呢?
正确的添加头文件的makefile该怎么写呢?
求大神指导,刚看makefile,这个折腾了一晚上了!
另外我make的时候也用过不同的命令
make -I./header1/myheader.h
make -I./header1
make --include ./header1/myheader.h
make --include ./header1
也都不行(执行以上命令makefile山除了-include和-I)
展开
 我来答
爱心永恒2008
2015-11-07 · TA获得超过1231个赞
知道小有建树答主
回答量:1314
采纳率:62%
帮助的人:329万
展开全部
你可以自己建个目录吗,再编译,
如~/test
在Windows下也是这样
追问
上面的文件和文件夹都是我自己建的。
追答
放到一个目录下,不行的话建立makefile文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式