在makefile

时间:2017-09-19 21:26:08

标签: c makefile

由于依赖性,我的makefile执行每次都失败。我不想过分共享,所以我会尝试只分享必要的信息。我正在使用GNUWin32 make,以便我的Windows框可以执行它(我必须处理的约束)并且我能够在src \\ Framework \ ... \\%中编译/生成相当数量的文件。来自.. \\ src \\ Framework \ ... \\%。c。

的领域

似乎只要它至少有2个文件夹深,Makefile就可以了。例如:src \\ test.o没有编译,但src \\ tester \\ test.o将编译。

我的错误如下:

  

制作:***没有规则来制作目标' src \\ control.o',需要' proj.elf'。停止。

但我也有以下规则,它是从目标all的依赖项执行的:

  

src \\%。o:.. \\ src \\%。c

只要.. \\ src \\%。c存在就应该生成src \\ control.o。

当我使用make -d all时,我注意到它以

结尾
  

找不到&s; src \\ control.o'。

的隐含规则      

目标文件的完成先决条件' src \\ control.o'。

     

必须重新制作目标' src \\ control.o'

如果有人有解决方案来完成这项工作,我会很高兴听到它!

1 个答案:

答案 0 :(得分:0)

我发现了问题。显然,即使GNUWin32使用Unix样式文件名作为目标和依赖项,但为了使用mkdir命令,您必须使用Windows样式文件名。

  

test / windows /%.o:../ test / windows /%.c

     

mkdir test \ windows \ make_this_dir \

我希望这可以帮助任何有类似问题的人。