lyq1216 2023-11-16 12:18 采纳率: 0%
浏览 47
已结题

makefile文件中VPATH路径无法找到

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

img

img

img

img

  • 写回答

11条回答

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-11-16 12:18
    关注

    引自强大而免费的微信小程序:皆我百晓生

    首先,让我们仔细检查你的 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 文件和编译报错信息,存在以下问题:

    1. VPATH 中的路径分隔符使用了错误的分隔符:,在 Windows 系统中应该使用分号;进行分隔。
    2. -I 参数后的路径设置有误,应该使用正斜杠/而不是反斜杠\作为路径分隔符。
    3. makefile 中的部分规则定义不正确。

    解决方案
    根据以上分析,我们修改了你的 makefile 文件,并进行了注释,你可以尝试使用修改后的 makefile 文件重新编译代码。请注意,我们将路径中的反斜杠\替换为正斜杠/,确保路径格式正确。在 Windows 系统中,你还可以使用相对路径或绝对路径进行设置。

    希望这能帮助你解决问题。如果还有其他疑问,请随时向我提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月17日
  • 创建了问题 11月16日