рдпреВрдирд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрдХрд▓рдХ рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛рдХрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рд╕реА рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рджреБрднрд╛рд╖рд┐рдП рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ
рдкрд░реНрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред
рдЬреАрд╕реАрд╕реА
рдЬреАрд╕реАрд╕реА рдмрд╣реБрдд рд╕рдореНрдорд╛рдирдЬрдирдХ рдЙрдореНрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рдХ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдФрд░ рдЬреАрдкреАрдПрд▓ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ C рдФрд░ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдФрд░ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкрдХрддрд╛ рдиреЗ рдЗрд╕рдХреА рдирд┐рд░рдВрддрд░ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рдорд╛рд░реНрдЧ рдкреНрд░рд╢рд╕реНрдд рдХрд┐рдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐
рдХреНрд▓реИрдВрдЧ ред
рдореБрдЦреНрдп
gcc рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреВрд▓реНрд╕ рдкрд░ рдПрдХ рдЕрдореВрд░реНрдд рдкрд░рдд рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рд╕рдВрдХрд▓рди, рд▓рд┐рдВрдХрд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рди рдХреЗрд╡рд▓ рд╕реА рдХреЛрдб рд╕реЗ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕ рдЬрдЯрд┐рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рджрд░реНрдЬреА рдХрд░реЗрдВред
рдпрд╣рд╛рдВ рдореИрдВ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд╢рд╛рдпрдж рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдВрдЧреЗред рдореИрдВ рдСрдЯреЛрдореЗрд╢рди рдЯреВрд▓реНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рдкрд░ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рд╕рдВрдХрд▓рди рдФрд░ рдирд┐рд░реНрдорд╛рдг рд╡рд╕реНрддреБ рдХреЛрдб
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛрдб рдХреЛ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
$ gcc -c example.c -o example.o
рдпрджрд┐ рдХреЛрдб рд╕рд╣реА рд╣реИ, рддреЛ рдПрдХ рдЕрдирд▓рд┐рдВрдХрдб рдмрд╛рдЗрдирд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓
example.o
рдХреЗ рдирд╛рдо рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВред рдЖрдк рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
$ objdump -D example.o
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк
-S рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреБрд░рдВрдд рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ:
$ gcc -c -S example.c -o example.s
рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд░реЛрдд рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ gcc -c -g -Wa,-a,-ad example.c > example.lst
рдкреВрд░реНрд╡рдкреНрд░рдХреНрд░рдордХ
рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ (
рд╕реАрдкреАрдкреА ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдорддреМрд░ рдкрд░ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣
gcc рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдорд╛рдирдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╕реАрдзреЗ
cpp рдХреЙрд▓ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
$ cpp example.c
рд╕реНрд░реЛрдд рдХреЛрдб рдЕрдВрддрд┐рдо рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛, рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░, рдореИрдХреНрд░реЛрдЬрд╝ рдХреА рдЬрдЧрд╣ рдФрд░ рд╢рд╛рдорд┐рд▓ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиред
рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдВрдХрд┐рдВрдЧ
рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ gcc example.o -o example
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
gcc рдХреЛ рдХреЗрд╡рд▓
ld , GNU рд▓рд┐рдВрдХрд░ рдХрд╣рддреЗ рд╣реИрдВред рдХрдорд╛рдВрдб рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдЧреА рдЬрд┐рд╕реЗ
example
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрдХрд▓рди, рд╕рдВрдпреЛрдЬрди рдФрд░ рд▓рд┐рдВрдХрд┐рдВрдЧ
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ gcc example.c -o example
рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ: рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдмрджрд▓ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
-рд╕реА рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдореЗрдВ рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:
$ gcc -I/usr/include/somelib.h example.c -o example
рдЗрд╕реА рддрд░рд╣, рдпрджрд┐ рдХреЛрдб рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдлрд╝реЛрд▓реНрдбрд░реНрд╕ (
/lib
рдпрд╛
/usr/lib
) рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
ncurses ,
-l рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ gcc -lncurses example.c -o example
рдпрджрд┐ рдмрд╛рд╣рд░реА рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ:
$ export CFLAGS=-I/usr/include/somelib.h $ export CLIBS=-lncurses $ gcc $CFLAGS $CLIBS example.c -o example
рд╡реИрд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ trifles рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Makefile рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рдВрдХрд▓рди рдпреЛрдЬрдирд╛
рдЬреАрд╕реАрд╕реА рдЖрдВрддрд░рд┐рдХ рд░рд╕реЛрдИ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
-v рд╕реНрд╡рд┐рдЪ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрдХрд▓рди рдпреЛрдЬрдирд╛ рдорд╛рдирдХ рддреНрд░реБрдЯрд┐ рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧреА:
$ gcc -v -c example.c -o example.o
рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- ### :
$ gcc -
рдпрд╣ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рдХреНрдпрд╛ рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рд╣реЛрддреА рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рд╣рдо рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЕрд╡рд╛рдВрдЫрд┐рдд рдХрджрдореЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ
рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐
-Wall рдФрд░ / рдпрд╛
-рдЖрд░реНрдерд┐рдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рдирд╛ рддрд╛рдХрд┐ gcc рд╣рдореЗрдВ рдЙрди рдорд╛рдорд▓реЛрдВ рд╕реЗ рдЖрдЧрд╛рд╣ рдХрд░реЗ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
$ gcc -Wall -pedantic -c example.c -o example.o
рдпрд╣
makeprg
рдореЗрдВ рдпрд╛
рд╡рд┐рдо рдХреЗ рд▓рд┐рдП
makeprg
рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдРрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреНрд╡рд┐рдХрдлрд┐рдХреНрд╕ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп, рд╕рдВрдЧрдд рдФрд░ рддреНрд░реБрдЯрд┐-рдореБрдХреНрдд рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред
рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдЖрдк
рд╕рдордп рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рддрд╛рдХрд┐ gcc рдЖрдЙрдЯрдкреБрдЯ рдкрд╛рда рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗ:
$ gcc -time -c example.c -o example.o
рдЕрдиреБрдХреВрд▓рди
Gcc рдореЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреАрдЬрд╝ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдВрдХрд▓рди рд╕рдордп рдмрдврд╝рд╛рдХрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛрдб рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ -O2 рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд▓рд┐рдП рдордзреНрдп рдореИрджрд╛рди:
gcc -O1 gcc -O2 gcc -O3
рдХрд┐рд╕реА рднреА рдмреИрд╢ рдХрдорд╛рдВрдб рдХреА рддрд░рд╣, рдпрд╣ рд╕рдм рд╕реАрдзреЗ рд╡рд┐рдо рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
:!gcc % -o example
рджреБрднрд╛рд╖рд┐рдП
рдпреВрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдб рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрд▓рдЧ рд╣реИред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдкрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдпрд╛ рд░реВрдмреА рдореЗрдВред
рдЗрдирд▓рд╛рдЗрди рдХреЛрдб
рдкрд░реНрд▓ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╢рд╛рдпрдж
рдкрд░реНрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИ; рджреВрд╕рд░рд╛
heredoc рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддреАрд╕рд░рд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдпреВрдирд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╣реИред
$ perl -e 'print "Hello world.\n";' $ perl <<<'print "Hello world.\n";' $ echo 'print "Hello world.\n";' | perl
рдмреЗрд╢рдХ, рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рдореЗрдВ, рд╣рдо рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ perl hello.pl
рдЖрдк
-рд╕реА рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ perl -c hello.pl
рдХрднреА-рдХрднреА рдЖрдк рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрд╛рдЗрдирд░реА рдЬреИрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрдерд╛рдХрдерд┐рдд "
рд╢реЗрдмрдВрдЧ " рдХреЛ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ
chmod рдХрд╣рдХрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╣рдЯрд╛рдХрд░ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЕрдм рд▓рдЧрднрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:
$ mv hello{.pl,} $ chmod +x hello
рдлрд┐рд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдзреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ ./hello
рдпрд╣ рдкреВрд░реА рд░рд╕реЛрдИ рдЗрддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдХрд┐ рдХрдИ рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ, рдЬреИрд╕реЗ рдХрд┐
рдПрдбреНрдпреВрд╕рд░ , рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░реНрд▓ рдпрд╛ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВред
рдЕрдЧрд▓реЗ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ, рдореИрдВ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп IDE рдХреЗ рд▓рд┐рдП рддреБрд▓рдиреАрдп рд╣реИрдВред
рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...рдЖрдИрдбреАрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдирд┐рдХреНрд╕: рдкрд░рд┐рдЪрдпрдЖрдИрдбреАрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдирд┐рдХреНрд╕: рдлрд╛рдЗрд▓реЗрдВрдЖрдИрдбреАрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдирд┐рдХреНрд╕: рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛рдЖрдИрдбреАрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдирд┐рдХреНрд╕: рд╕рдВрдХрд▓рди