我如何告诉 gnu make 头文件在哪里?
how do I tell gnu make where a header file is?
我有一个简单的 C 文件,可以编译。我现在正尝试向其添加位于
的外部头文件
../../myotherdir/tbt/include
这是我的 C 文件:
/* Hello World program */
#include<stdio.h>
#include "app.h"
main()
{
printf("Hello World");
}
这是我的 makefile:
headerdir = ../../mytree2/tlk/include
hello: hello.c **app.h**
gcc -I$(headerdir) hello.c -o hello
如何让 make 在 myotherdir/tbt/include 中搜索头文件并将它们添加到我的项目中?
我按照 Mureinik 的建议更新了 makefile。谢谢它的工作。现在我收到一个不同的错误,指出我没有制定 app.h 的规则。
我发现了我认为的错误。我不应该添加 app.h 作为先决条件。我在上面用粗体突出显示了它。删除该行后,我遇到了其他错误,但我的 make 文件似乎可以正常工作。谢谢 Mureinik。
gcc -o hello.o -I$(headerdir) hello.c
您不需要像那样指定 VPATH。
您可以更改 headerdir 以包含更多头文件。例如
headerdir = ../../myotherdir/tbt/include ../path/to/next/header/dir ../etc/etc
您可以使用 -I
参数来设置附加 headers:
的位置
hello: hello.c app.h
gcc -I${headerdir} hello.c -o hello
我有一个简单的 C 文件,可以编译。我现在正尝试向其添加位于
的外部头文件../../myotherdir/tbt/include
这是我的 C 文件:
/* Hello World program */
#include<stdio.h>
#include "app.h"
main()
{
printf("Hello World");
}
这是我的 makefile:
headerdir = ../../mytree2/tlk/include
hello: hello.c **app.h**
gcc -I$(headerdir) hello.c -o hello
如何让 make 在 myotherdir/tbt/include 中搜索头文件并将它们添加到我的项目中?
我按照 Mureinik 的建议更新了 makefile。谢谢它的工作。现在我收到一个不同的错误,指出我没有制定 app.h 的规则。
我发现了我认为的错误。我不应该添加 app.h 作为先决条件。我在上面用粗体突出显示了它。删除该行后,我遇到了其他错误,但我的 make 文件似乎可以正常工作。谢谢 Mureinik。
gcc -o hello.o -I$(headerdir) hello.c
您不需要像那样指定 VPATH。 您可以更改 headerdir 以包含更多头文件。例如
headerdir = ../../myotherdir/tbt/include ../path/to/next/header/dir ../etc/etc
您可以使用 -I
参数来设置附加 headers:
hello: hello.c app.h
gcc -I${headerdir} hello.c -o hello