Basically, you have a project X depending on project Y (X --> Y) , and project Y depending on project X ( Y --> X).
In other words, something like: ( X <---> Y)
This situation means that the compiler does not know what to compile first, and therefore complains.
To solve this, look for common things / pieces of logic that can be moved out from one or both of the projects, and create a third project that can be built before both of the others.
Place all common stuff in this new project, and you should be fine; your dependency should then be as below, where it does not matter if X or Y is compiled first, as long as Z is compiled before both of them:
( X --> Z <-- Y )