Tôi đang sử dụng yacc và lex với Visual Studio 2012 C++/CLI và đã tạo ra một bước tùy chỉnh xây dựng cho các tập tin nguồn yacc như thể hiện trong hình dưới đâyTại sao Visual Studio 2012 chạy bước xây dựng tùy chỉnh khi tệp nguồn chưa được thay đổi?
Có hai phụ thuộc cho các tập tin đầu ra . Chúng là tệp icl5kyacc.y nguồn yacc và tệp mẫu yyparse.c. Mỗi khi tôi xây dựng giải pháp, bước xây dựng tùy chỉnh chạy ngay cả khi tệp nguồn yyparse.c và icl5kyacc.y chưa được sửa đổi. Đây là danh sách thư mục sau một bản dựng.
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
Và sau khi xây dựng lại
2> Tạo icl5kyacc.cpp từ 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
Tôi có sai lầm khi tin rằng bằng cách sử dụng một bước tùy chỉnh xây dựng nên tự động áp dụng quy tắc phụ thuộc tiêu chuẩn giữa các tệp đầu vào và đầu ra của bước xây dựng? Một điều mà tôi tò mò là đoạn mã % (AdditionalInputs) mà Studio đã đưa vào cho tôi trong phần Phụ thuộc bổ sung. Không chắc chắn đó là gì hoặc nếu đó là bằng cách nào đó trỏ đến một tập tin đang được sửa đổi.
Xóa macro **% (AdditionalInputs) ** không ảnh hưởng đến vấn đề này. – JonN