Add Team development

It is already hard for an individual developer to keep track of those dependencies. But once you develop as part of a team several even more critical issues arise:

  • You might use header files from a colleague which change frequently. How do you know when to recompile?

  • When you integrate your parts with those of your colleagues to create the final product it turns out that the parts do not fit together. Functions are defined in several different incompatible ways (static integration problems). At runtime the program crashes. It takes days to find the problems which turn out to be caused by incompatible compiler options (alignment etc.) or duplicate dynamic link libraries installed in different locations. The program just takes the first - perhaps outdated library - and crashes.

    Note

    Makefiles do not solve ALL those problems. It takes a full-blown build environment with generated makefiles for this. But makefiles are a start.