Community
Participate
Working Groups
Lets we have too files in our Managed C Project 'Executable (Gnu on Windows)': 1. foo.c: #include "foo.h" int main () {return 0;} 2. foo.h: #ifndef _FOO_H_ #define _FOO_H_ #endif Assume that our project already was built. Now insert in foo.h following string: #include "missing.h" Note: file missing.h doesn't exist. When foo.h is saved foo.c would be recompiled (that's correct). Now we have project with an error. Then fix the error: just remove '#include "missing.h"' from foo.h and save it. Well, foo.c IS NOT recompiled because foo.d is empty now and foo.o still exists!
There are cases where the standard .d dependency handling mechanism breaks down. See bugzilla #109289 for a long discussion.