Makefile 找不到包含路径

问题描述 投票:0回答:1

我的文件夹结构如下

/Myapp/main.c  
/Myapp/f1.c  
/Myapp/f1.h  
/Myapp/Makefile

我的 Makefile 竞赛是

CC = gcc
main: main.o f1.o
    $(CC) -o main main.o f1.o
main.o: main.c f1.h
f1.o: f1.c f1.h

我在目录 Myapp 中运行 makefile,它工作正常

但是......当我将 f1.h 移动到这样的包含文件夹时:

/Myapp/main.c  
/Myapp/f1.c  
/Myapp/Makefile  
/Myapp/include/f1.h

并在Makefile中添加包含路径

CC = gcc
INCLUDE = ./include/
main: main.o f1.o
    $(CC) -I$(INCLUDE) -o main main.o f1.o
main.o: main.c f1.h
f1.o: f1.c f1.h

它将显示: make: *** 没有规则来创建“main.o”所需的目标“f1.h”。停下来。

这让我困惑了一段时间。
搜索了相关问题后仍然无法解决这个简单的问题
(我想这可能是一个相对目录问题,对吧?)
感谢您的帮助。

makefile
1个回答
0
投票

改变

main.o: main.c f1.h
f1.o: f1.c f1.h

main.o: main.c $(INCLUDE)f1.h
    $(CC) -c -o main.o main.c -I$(INCLUDE)
f1.o: f1.c $(INCLUDE)f1.h
    $(CC) -c -o f1.o f1.c -I$(INCLUDE)

您需要更改 f1.h 相关路径,为其添加“include”

© www.soinside.com 2019 - 2024. All rights reserved.