Mail Archives: djgpp/1997/11/07/19:18:20
steven AT freenet DOT edmonton DOT ab DOT ca wrote in message <63ul58$ars$1 AT news DOT sas DOT ab DOT ca>...
>What's the difference between linking and compiling? I know what compiling
>is... but linking is uncharted territory for myself.
>
>--------------+
>Windows 95: n.|
> 32 bit extensions and a graphical shell for a 16 bit patch to an
> 8 bit operating system originally coded for a 4 bit microprocessor,
> written by a 2 bit company, that can't stand 1 bit of competition.
There are 4 programs run when converting a .C file to .EXE:
Preprocessor - CPP.EXE replaces #includes with the actual file, #defines
with the actual definition, etc. Also remove comments. File is stored in temp
directory.
Compiler - CC1(PLUS, OBJ).EXE converts output from CPP to assembly. CC1 is
C, CC1plus is C++, CC1OBJ is objective C.
Assembler - AS.EXE converts output of CC1(*) or your own assembly files to
computer code. It is ready to be used, but not an EXE file. GCC stops here if
you tell it -c.
Linker - LD.EXE combines multiple .O files and libraries to have a file
ready to be run by GO32.EXE.
The compiler is the first 3. The linker combines multiple files, and links
the calls (ie functions) to the actual functions.
Oh yea,STUBIFY.EXE writes 2 kb to the start of the linkers output to make a full
.EXE file.
- Raw text -