ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ°ΠΆΠ½Π΅ΠΉΡΠ°Ρ ΡΡΠ΅Π΄ΠΈ Π½ΠΈΡ β Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° X Window System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/X11 ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/bin/X11. Π Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ X.Org Foundation Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ X Window System, Π±Π°Π·ΠΈΡΡΡΡΠ°ΡΡΡ Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Revision 7 (X11R7). Π Π΄ΡΡΠ³ΠΈΡ UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½Ρ ΠΈΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ X Window System, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/openwin Π΄Π»Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Open Windows ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sun Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Solaris.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° GNU, gcc (ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ) ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ usr/bin ΠΈΠ»ΠΈ usr/local/bin, Π½ΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ². ΠΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π·Π°Π΄Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΈΠΏΠ° Ρ ΠΎΡΡ-ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Linux ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/lib/gcc/. ΠΠ° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠ°ΡΠΈΠ½ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Π²ΡΠΎΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ½ΠΈΠ³ΠΈ ΡΡΠΎ Π±ΡΠ» ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/lib/gcc/i586-suse-linux/4.1.3. Π Π½Π΅ΠΌ Ρ ΡΠ°Π½ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° GNU C/C++ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ GNU.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΡΠ»ΡΡΠ°Π΅ ΡΠ·ΡΠΊΠ° Π‘ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /usr/include ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ . ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΠΎΠΏΠ»ΠΎΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ ΠΠ‘ Linux, Π²Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ /usr/include/sys ΠΈ /usr/include/linux.
Π£ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ /usr/include/X11 Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ X Window System ΠΈ /usr/include/c++ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° GNU Π‘++.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠ΅ΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π² ΡΠ»Π°Π³ -I (Π΄Π»Ρ include) Π² ΡΡΡΠΎΠΊΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ·ΡΠΊΠ° Π‘. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π°
$ <b>gcc -I/usr/openwin/include fred.c</b>
Π·Π°ΡΡΠ°Π²ΠΈΡ ΠΈΡΠΊΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ fred.c, Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ ΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /usr/openwin/include. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π‘ (
man gcc
ΠΡΠΊΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°ΠΌΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ grep. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΈΠΌΡ ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²
#define
$ <b>grep EXIT_ *.h</b>
...
stdlib.h#define EXIT_FAILURE 1 /*Failing exit status. */
stdlib.h#define EXIT_SUCCESS 0 /*Successful exit status. */
...
$
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° grep ΠΈΡΠ΅Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠΌΠΈΡΡ Π½Π° .h, ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ EXIT_. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ½Π° Π½Π°ΡΠ»Π° (ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ) Π½ΡΠΆΠ½ΠΎΠ΅ Π²Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ stdlib.h.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β ΡΡΠΎ Π½Π°Π±ΠΎΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΠ°ΡΡΠ΅ΡΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΊΡΠ°Π½ΠΎΠΌ (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ curses ΠΈ ncurses) ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° dbm). Π ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌ Π²Π°Ρ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ /lib ΠΈ /usr/lib. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠ·ΡΠΊΠ° Π‘ (ΠΈΠ»ΠΈ, ΡΠΎΡΠ½Π΅Π΅, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΡ) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ΠΈΡΠΊΠ°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π‘. ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΠΎΠΊ, ΠΏΡΠΈΡΠ΅Π΄ΡΠΈΠΉ ΠΊ Π½Π°ΠΌ ΠΈΠ· ΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π±ΡΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌΠΈ ΠΈ ΡΠΈΠΊΠ»Ρ Π¦ΠΠ£ Π±ΡΠ»ΠΈ Π΄ΠΎΡΠΎΠ³ΠΈ. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ ΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π°ΠΉΠ΄Π΅Ρ Π΅Π΅; Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π±ΡΡΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² lib. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ Π½Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘ ΠΈΠ»ΠΈ m Π΄Π»Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ). ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ°ΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΡΠΊΠΈ (.) ΠΈ Π·Π°Π΄Π°Π΅Ρ ΡΠΈΠΏ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
β‘ Π° β Π΄Π»Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ;
β‘ .so β Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (ΡΠΌ. Π΄Π°Π»Π΅Π΅).
ΠΠ±ΡΡΠ½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ°Ρ , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π±ΡΡΡΡΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ls /usr/lib. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΡΠΊΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π·Π°Π΄Π°Π² ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ Π΅Π΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² ΡΠ»Π°Π³ -l. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π°
$ <b>gcc -ΠΎ fred fred.c /usr/lib/libm.a</b>
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» fred.c ΠΈ ΠΈΡΠΊΠ°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π‘. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ <b>gcc -ΠΎ fred fred.c -lm</b>
-lm
l
m
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠΊΠ°Π·Π°Π² ΡΠ»Π°Π³ -L (Π·Π°Π³Π»Π°Π²Π½Π°Ρ Π±ΡΠΊΠ²Π°) Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π°
$ <b>gcc -ΠΎ x11fred -L/usr/openwin/lib x11fred.c -lX11</b>
Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ x11fred, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libX11, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /usr/openwin/lib.
ΠΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΡΠΎΡΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π² Π²ΠΈΠ΄Π΅, Π³ΠΎΡΠΎΠ²ΠΎΠΌ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½ΡΠΆΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°ΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, Π² Π½Π΅Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΎΠ±ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ. ΠΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΡΠΈΡ
-l
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π°ΡΡ ΠΈΠ²Π°ΠΌΠΈ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠΈΠ½ΡΡΡΠΌΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ .Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, lib/libc.Π° ΠΈ /usr/lib/libX11 Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π‘ ΠΈ X11 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ar (Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΡΡ ΠΈΠ²ΠΎΠ²) ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
gcc -Ρ