nmake v6递归构建c文件

时间:2017-02-20 14:26:06

标签: c recursion build nmake

我试图让 nmake - 版本6 以递归方式构建一个c项目,从而减轻每个源文件及其相关对象的痛苦的单行规则。

见下面的例子:

目前这就是我的工作原理(摘录)......

File1 = aes
File2 = sha256     
File3 = pkcs5

$(ObjDir)\$(File1).o : $(SrcDir)\$(File1).c
  @echo Compiling  ... $(File1)
  @$(CC) -c $(Includes) $(CFLAGS) $(SrcDir)\$(File1).c

$(ObjDir)\$(File2).o : $(SrcDir)\$(File2).c
  @echo Compiling  ... $(File2)
  @$(CC) -c $(Includes) $(CFLAGS) $(SrcDir)\$(File2).c

$(ObjDir)\$(File3).o : $(SrcDir)\$(File3).c
  @echo Compiling  ... $(File3)
  @$(CC) -c $(Includes) $(CFLAGS) $(SrcDir)\$(File3).c

但是,我更喜欢这样做(不工作,没有错误)...

$(ObjDir)\$(SrcDir:%|fF.c=%|fF.o): $(SrcDir)\%.c
    @echo Compiling ... $(*B)
    @$(CC) -c $(Includes) $(CFLAGS) $*.c

使用的命令参考:
[文件名宏]:https://msdn.microsoft.com/en-us/library/aa233975(v=vs.60).aspx
[文件名 - 部件语法]:https://msdn.microsoft.com/en-us/library/aa233961(v=vs.60).aspx
[宏观替换]:https://msdn.microsoft.com/en-us/library/bsd42ets.aspx

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

对于那些可能正致力于解决方案的人。我找到了实现我想要的方法。请参阅下面的解决方案:

OBJS=aes.o \
     sha256.o \
     pkcs5.o

$(OBJS):
  @echo Compiling $(*B).c ...
  $(CC) $(Includes) $(CFLAGS) $(SrcDir)\$(*B).c