Sto usando yacc e lex con Visual Studio 2012 C++/CLI e ho creato un passaggio di generazione personalizzata per il file di origine yacc come mostrato nell'immagine qui sottoPerché Visual Studio 2012 esegue il passo di creazione personalizzato quando il file di origine non è stato modificato?
Ci sono due dipendenze per il file di output . Sono il file sorgente yacc icl5kyacc.y e il file modello yyparse.c. Ogni volta che costruisco la soluzione, il passo di costruzione personalizzato viene eseguito anche quando i file di origine yyparse.c e icl5kyacc.y non sono stati modificati. Ecco l'elenco delle directory dopo una compilazione.
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
E dopo la costruzione di nuovo
2> Generazione icl5kyacc.cpp da 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:45:46a 38,233 A ICL5KYACC.cpp
22-Sep-2012 11:45:46a 2,160 A icl5kyacc.h
mi sbaglio nel credere che l'uso di un passaggio di generazione personalizzata dovrebbe applicare automaticamente regole di dipendenza normali tra i file di input e di output della fase di creazione? Una cosa di cui sono curioso è la macro % (AdditionalInputs) che Studio ha inserito per me in Dipendenze aggiuntive. Non sei sicuro di cosa sia o se questo indichi in qualche modo un file che viene modificato.
La rimozione della **% (AdditionalInputs) ** macro non ha avuto alcun effetto sul problema. – JonN