Currently because NNNetwork.cpp includes Utils.h, engine has a dependency on utils. Utils also has a dependency on engine (technically this is a circular dependency). The reason why things are working at the moment is because NNNetwork.cpp depends on a single function double elapsed_seconds() from Utils.h which also happens to be declared and defined in the header (hence not requiring a Utils.o - if this were true things wouldn't have worked since there would be a true circular dependency).
the method elapsed_seconds() should be extracted to a utils.h in engine and Utils.h in utils should include it.
Currently because NNNetwork.cpp includes Utils.h, engine has a dependency on utils. Utils also has a dependency on engine (technically this is a circular dependency). The reason why things are working at the moment is because NNNetwork.cpp depends on a single function
double elapsed_seconds()
from Utils.h which also happens to be declared and defined in the header (hence not requiring a Utils.o - if this were true things wouldn't have worked since there would be a true circular dependency).the method
elapsed_seconds()
should be extracted to a utils.h in engine and Utils.h in utils should include it.