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) 展开
#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) 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询