I’m going to steal an answer to a similar question asked in the O.R. The question was specific about Java but I think this applies to other platforms and languages.
The build process involves several steps needed to generate a "deliverable" version of your software. In the Java world, this usually includes:
- Generation of sources (sometimes).
- Compilation of sources.
- Compilation of test sources.
- Testing (unit tests, integration tests, etc).
- Packaging (in
jar
, war
, ejb-jar
, ear
).
- "Health"/performance checks (Checkstyle, Findbugs, PMD, Coverage test, etc).
- Reporting.
I changed the answer a little bit - I’m doing a version that’s my interpretation here. But the key point is that compile is the process of transforming source code text into some other form that the computer can process (machine language, bytecoce etc.). The compilation itself is only part of the building, which involves not only the translation of the code but also the linking of the parties and all other processes necessary for the compiled code to be used.
Source: Building vs. Compiling (Java)
Take a look at the link at the end of Pascal’s reply, about continuous integration ;) When using IC, it is common to talk about unstable builds and stable build. For those who work with this, the distinction between compiling and having a build becomes clearer. Compile, the code will always compile which is a beauty (if there are no syntax errors). Already 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’ve never seen this expression before, "object code").
Linking is the act of combining the computed code and the libraries used in a "raw executable".
Building is the sequence composed by the compilation and the linking, and other possible tasks such as creating an installer.
Dude I think the two are the same thing. ?
– Marconi
Some Ides use the term Compile to describe the recompilation only of what was changed and the term build to describe the recompilation of the entire project and eventually the reconstruction of the distribution package. There are languages where you first have to compile and then generate the executable, and the two terms can describe these two steps. You have to specify what environment you’re talking about.
– Caffé
I added the "Delphi" tag to your question because it was inconsistent, and may attract answers that explain conceptual differences between "build" and "Compile" but which may not answer your specific question, which is not only conceptual but involves a specific IDE. Despite the evidence that it is Delphi, if not, edit your question.
– Caffé