O'Reilly logo

Practical Development Environments by Matthew B. Doar

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Common Build Problems

Some commonly encountered problems with build processes include:

Command-line length

The length of the commands executed by build tools can cause problems on different platforms. Shell commands are usually typed in by people, so they remain relatively short. It is not uncommon for commands that are thousands of characters long to be generated by build tools. Some reasons for this are absolute pathnames being used for all files, or long file lists being used to maximize the number of files processed each time that a slow-to-start compiler is invoked. Build tools can sometimes avoid this problem by using a temporary file containing the list of files to be used by another tool.

Filename formats

The names for the same file on different filesystems are quite different. For instance, Windows filesystems have drive letters, plus backslashes separating directories, as opposed to Unix forward slashes. Older Windows filenames could have only up to eight characters, with a three-character extension. Older Unix filesystems did not support spaces in filenames. If you want to build your project on multiple platforms, then a build tool with good support for avoiding filesystem-specific names is helpful. The easiest build tools to use are ones that allow you to specify a filename in one format and then automatically convert the filename to the appropriate format for the intended platform.

Unit tests for build tools

If you treat build tools like any other application, you ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required