I'm going to steal an answer to a similar question made in the OS. The question was specific about Java but I think this goes for other platforms and languages.
The construction process involves several steps required to generate a "deliverable" version of your software. In the Java world, this usually includes:
- Font generation (sometimes).
- Compilation of sources.
- Compilation of test sources.
- Testing (unit testing, integration testing, etc.)
- Packaging (in
jar
, war
, ejb-jar
, ear
).
- Health / performance checks (Checkstyle, Findbugs, PMD, test coverage, etc.)
- Generating reports.
I've changed the answer a bit - I'm doing a version that is my interpretation here. But the key point is that compiling is the process of transforming text source code into some other form the computer can process (machine language, bytecoce, etc.). The build itself is only part of the building process, which involves not only the translation of the code but also the binding of the parts and all other processes required for the compiled code to be used.
Source: Building vs. Compiling (Java)
Take advantage of and read the link at the end of Pascal's answer about continuous integration;) When using IC, it is common to talk about unstable builds and stable builds >. For those who work with it, the distinction between compiling and having a build becomes clearer. Compiling, the code will always compile which is a beauty (if there are no syntax errors). Having a stable build is something else.
See also this other answer: What is the difference between compile code and executable code?
Compile is the act of transforming source code into object code (my note: I have never seen this expression before, "object code"). > is the act of combining the compiled code and the libraries used in a "raw" executable. Building is the compilation linking , and other possible tasks like creating an installer.