======================================================================= Build.txt - instructions for configuring and building this solution ======================================================================= DemoReqs ----> DateTime references static library ----> FileSystem references static library ----> CodeUtilities includes header only ----> SingletonLogger includes header only ----> StringUtilities includes header only ----> TestUtilities includes header only - The Application (startup) project is DemoReqs. - DemoReqs makes references to DateTime and FileSystem - Those projects are built as static libraries with their mains disabled - DemoReqs uses header files from CodeUtilities, SingletonLogger, StringUtilities, and TestUtilities. - All of these projects are built as console executables with mains enabled. This is a typical implementation pattern for me. - Small utilities have all of their functionality in their header files (*.h), using class declarations and inline methods (inline in header but not in class). - That allows applications to use them without including their libraries or implementation files (*.cpp). - Larger utilities declare their functionality in their header files and and provide their implementation in implementation files. They are built as static libraries, with mains disabled, and the Application project makes references to them. To build this solution: - Right-click on each static library project (DateTime and FileSystem) and select build. - Right-click on solution and build. - If you start by building the solution, that will fail if the Application project references a library project that hasn't been built yet. It should succeed if you build again. - If you use the configuration manager for each project - available from the properties dialog - and set the dependencies appropriately, then builds will always succeed, provided that the code itself compiles successfully.