我在 Visual Studio 2012 C++/CLI 中使用 yacc 和 lex,并为 yacc 源文件创建了一个自定义构建步骤,如下图所示
输出文件有两个依赖项。它们是 yacc 源文件 icl5kyacc.y 和 yyparse.c 模板文件。每次我构建解决方案时,即使 yyparse.c 和 icl5kyacc.y 源文件没有被修改,自定义构建步骤也会运行。这是构建后的目录列表。
21-Sep-2012 10:19:18p 28,210 A icl5kyacc.y
17-Sep-2012 7:32:06p 9,042 A yyparse.c
22-Sep-2012 11:43:56a 38,233 A ICL5KYACC.cpp
22-Sep-2012 11:43:56a 2,160 A icl5kyacc.h
再次建造后
2> 从 icl5kyacc.y 生成 icl5kyacc.cpp
21-Sep-2012 10:19:18p 28,210 A icl5kyacc.y
17-Sep-2012 7:32:06p 9,042 A yyparse.c
22-Sep-2012 11:45:46a 38,233 A ICL5KYACC.cpp
22-Sep-2012 11:45:46a 2,160 A icl5kyacc.h
我是否误以为使用自定义构建步骤应该在构建步骤的输入和输出文件之间自动应用标准依赖规则?我很好奇的一件事是Studio 在 Additional Dependencies 下为我放入的%(AdditionalInputs)宏。不确定那是什么,或者是否以某种方式指向正在修改的文件。