Suppose I have a solution with 3 projects X,Y, and E.
E will generate an executable and X and Y will generate static libraries such that Y includes the header files of X and E includes the header files of Y.
Now, my question is: why do I have to include the directory of the header files of X in E?
Here's why:
Ytakes an argument (or returns a value) which is of a type declared inX.E.Xare absolutely needed inE.