Visual Studio pro 2017 build dependency problem
I have a Visual Studio C++ solution that seems to have a dependency problem somehow. Here is some info:
- It always builds correctly in Debug mode
- It always builds correctly in Release mode IF I do a "Clean Solution" first
- It builds incorrectly in Release mode otherwise. If I update a value in a header file, the compiled result will still have the old value.
Here is more information. The parameter that I change is a single value in my file release.h. This file has one line where I #define VERSION. VERSION is used in a function that returns the current version of my software. When I build after changing this value in the header file, the system correctly recognizes that the source file must be recompiled. After it recompiles the source file, I get the following:
1> Generating code 1> 0 of 168 functions ( 0.0%) were compiled, the rest were copied from previous compilation. 1> 0 functions were new in current compilation 1> 0 functions had inline decision re-evaluated but remain unchanged
I also verified that the same behavior happens if I replace the VERSION macro and use the number directly. If I only change the number, I get the same result as far as having to do a do a "Clean Solution" for the solution to build correctly.
Lastly, if I add a line of dummy code to the function such as:
int i = 7; // i is not used in the function
the build will work correctly the next time. In this case, after the source file is recompiled, we see the following:
1> Generating code 1> 2 of 168 functions ( 1.2%) were compiled, the rest were copied from previous compilation. 1> 0 functions were new in current compilation 1> 0 functions had inline decision re-evaluated but remain unchanged
Further compiles will not work correctly unless something changes like removing the int i = 7;
in which case, it will work the next time.