程序一共有三个文件夹,我把makefile放在了menu里面,用wingw32-make运行,只能成功找到本文件夹里的.c,找不到另外两个文件夹中的.c。VPATH路径不知道为什么没有用




程序一共有三个文件夹,我把makefile放在了menu里面,用wingw32-make运行,只能成功找到本文件夹里的.c,找不到另外两个文件夹中的.c。VPATH路径不知道为什么没有用




关注引自强大而免费的微信小程序:皆我百晓生。
首先,让我们仔细检查你的 makefile 文件并解决路径无法找到的问题。以下是一个修复后的 makefile 示例,希望对你有帮助:
# 源文件目录
VPATH = D:/program/Code_IO_tools:D:/program/Code_shapes
# 包含的头文件目录
INC = -I D:/program/Code_IO_tools -I D:/program/Code_shapes
# 编译选项
CFLAGS = -Wall -Werror
# 目标文件
OBJS = menu.o test_menu.o good_shapes.o io_tools.o
# 生成可执行文件
hmk: $(OBJS)
gcc $(OBJS) -o hmk $(INC)
# 编译每个源文件
menu.o: menu.c
gcc -c menu.c $(CFLAGS) $(INC)
test_menu.o: test_menu.c
gcc -c test_menu.c $(CFLAGS) $(INC)
good_shapes.o: good_shapes.c
gcc -c good_shapes.c $(CFLAGS) $(INC)
io_tools.o: io_tools.c
gcc -c io_tools.c $(CFLAGS) $(INC)
# 清理目标文件和可执行文件
clean:
rm -f $(OBJS) hmk
问题描述
你在 makefile 文件中设置了 VPATH 路径,但是编译时无法找到其他文件夹中的 .c 文件。
原因分析
根据你提供的 makefile 文件和编译报错信息,存在以下问题:
VPATH 中的路径分隔符使用了错误的分隔符:,在 Windows 系统中应该使用分号;进行分隔。-I 参数后的路径设置有误,应该使用正斜杠/而不是反斜杠\作为路径分隔符。解决方案
根据以上分析,我们修改了你的 makefile 文件,并进行了注释,你可以尝试使用修改后的 makefile 文件重新编译代码。请注意,我们将路径中的反斜杠\替换为正斜杠/,确保路径格式正确。在 Windows 系统中,你还可以使用相对路径或绝对路径进行设置。
希望这能帮助你解决问题。如果还有其他疑问,请随时向我提问。