рд▓рд┐рдВрдХрд░ рд╢реБрд░реБрдЖрддреА рдЧрд╛рдЗрдб

рдбреЗрд╡рд┐рдб рдбреНрд░рд┐рд╕реНрдбреЗрд▓ , рд▓рд┐рдВрдХрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдЧрд╛рдЗрдб ( http://www.lurklurk.org/linkers/linkers.html )ред

рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕реА рдФрд░ рд╕реА + + рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХрд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрд╛рдпрд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрд╛рдЧрдЬ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ рддрд╛рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд▓рдн рд╣реЛ рдЬрд╛рдП (рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА)ред [рдорд╛рд░реНрдЪ реирежреж реп рдЕрдкрдбреЗрдЯ: рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдПрдХ-рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рдпрдоред

рдореБрдЭреЗ рдорджрдж рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд░реНрдХ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЗрд╕рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рд╣реИ:
g++ -o test1 test1a.o test1b.o test1a.o(.text+0x18): In function `main': : undefined reference to `findmax(int, int)' collect2: ld returned 1 exit status 

рдпрджрд┐ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 'рд╢рд╛рдпрдж "рд╕реА" рднреВрд▓ рдЧрдП рд╣реИрдВ, "рддреЛ рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рджреА рдЧрдИ рд╕рдм рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВред

рд╕рд╛рдордЧреНрд░реА



рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ: рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ?


рдпрд╣ рдЕрдзреНрдпрд╛рдп C рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╣реИред рдпрджрд┐ рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдЕрдЧрд▓реЗ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрдХ рдШреЛрд╖рдгрд╛ рдФрд░ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдирд╛рдо рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рдирд╛рдо рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдпрд╛ рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

рдШреЛрд╖рдгрд╛ рд╕рдВрдХрд▓рдХ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдЪрд░ (рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде) рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдореМрдЬреВрдж рд╣реИ, рд╢рд╛рдпрдж рдПрдХ рдЕрд▓рдЧ рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рднреА рдПрдХ рдШреЛрд╖рдгрд╛ рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдШреЛрд╖рдгрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ "рдЕрдиреНрдп рд╕реНрдерд╛рди" рд╡рд░реНрддрдорд╛рди рдПрдХ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ)ред

рдЪрд░реЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдЙрдкрд▓рдмреНрдз" рд╢рдмреНрдж рдХреЛ "рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рдордп рдЪрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдирд╛рдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ:

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐, рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдереИрддрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ, рдЬрд┐рди рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд╛рдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╕ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред

рд╡реИрд╢реНрд╡рд┐рдХ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЪрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрд░рдореНрднрд┐рдХ рдпрд╛ рдирд╣реАрдВ, рдЕрд░реНрдерд╛рддреНред рдХреНрдпрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рд╕реЗ рднрд░рд╛ рд╣реЛрдЧрд╛ред

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ malloc рдпрд╛ new рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд╛рдо рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ - рдирд╛рдорд╛рдВрдХрд┐рдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдирд╛рдо рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдХреЛ free рдпрд╛ delete рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо "рдЧрддрд┐рд╢реАрд▓ рдЖрд╡рдВрдЯрди" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
рдХреЛрдбрдбреЗрдЯрд╛
рд╡реИрд╢реНрд╡рд┐рдХрд╕реНрдерд╛рдиреАрдпрдЧрддрд┐рд╢реАрд▓
initia-
liziro-
рдмрд╛рдерд░реВрдо
Neinitsia-
liziro-
рдмрд╛рдерд░реВрдо
initia-
liziro-
рдмрд╛рдерд░реВрдо
Neinitsia-
liziro-
рдмрд╛рдерд░реВрдо
Obyav-
Lenie
int fn(int x);extern int x;extern int x;рдПрди / рдПрдПрди / рдПрдПрди / рдП
рдирд┐рд░реНрдзрд╛рд░рд┐рдд
Lenie
int fn(int x) { ... }int x = 1;
(рд╕реНрдХреЛрдк
- рдлрд╝рд╛рдЗрд▓)
int x;
(рдЧреБрдВрдЬрд╛рдЗрд╢ - рдлрд╝рд╛рдЗрд▓)
int x = 1;
(рдЧреБрдВрдЬрд╛рдЗрд╢ - рд╕рдорд╛рд░реЛрд╣)
int x;
(рдЧреБрдВрдЬрд╛рдЗрд╢ - рд╕рдорд╛рд░реЛрд╣)
int* p = malloc(sizeof(int));

рд╢рд╛рдпрдж рд╕реАрдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рджреЗрдЦрдирд╛ рд╣реИред
 /*     */ int x_global_uninit; /*     */ int x_global_init = 1; /*    ,   *         C  */ static int y_global_uninit; /*    ,   *         C  */ static int y_global_init = 2; /*   ,   - *     */ extern int z_global; /*  ,   -   *  (    "extern",   * ) */ int fn_a(int x, int y); /*  .     static,   *        C . */ static int fn_b(int x) { return x+1; } /*  . */ /*     . */ int fn_c(int x_local) { /*     */ int y_local_uninit; /*     */ int y_local_init = 3; /* ,       , *      */ x_global_uninit = fn_a(x_local, x_global_init); y_local_uninit = fn_a(x_local, y_local_init); y_local_uninit += fn_b(z_global); return (x_global_uninit + y_local_uninit); } 


рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ


рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдХрд╛рдо рдЯреЗрдХреНрд╕реНрдЯ (рдЖрдорддреМрд░ рдкрд░) рдорд╛рдирд╡-рдкрдардиреАрдп рдХреЛ рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕рдордЭрддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред UNIX рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддреНрдпрдп .o рд╣реЛрддрд╛ рд╣реИ; рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рдкреНрд░рддреНрдпрдп .objред рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рджреЛ рдЪреАрдЬреЗрдВ рд╣реИрдВ:

рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдирдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдирд╛рдо рд╣реЛрдВрдЧреЗ - рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдЪрд░ рдХреЗ рдирд╛рдо рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╡реЗ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред

рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛрдб (рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд░рдЪрд┐рдд) рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рд╕реА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ: рдпреЗ рд╕рднреА if 's рдФрд░ while ' s goto рднреАред рдЗрди рдордВрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП - рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдб рдЕрдиреНрдп рдХреЛрдб (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЕрдиреНрдп C рдлрд╝рдВрдХреНрд╢рди) рдХреЛ рднреА рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рднреА рдХреЛрдб рдПрдХ рдЪрд░ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдЙрд╕рдиреЗ рдкрд╣рд▓реЗ рдЙрд╕ рдЪрд░ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рджреЗрдЦреА рд╣реЛред рдПрдХ рдШреЛрд╖рдгрд╛ рдПрдХ рд╡рд╛рджрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдореМрдЬреВрдж рд╣реИред

рд▓рд┐рдВрдХрд░ рдХрд╛ рдХрд╛рдо рдЗрди рд╡рд╛рджреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрди рд╕рднреА рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрдкрд╛рдЗрд▓рд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ?

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдХрдВрдкрд╛рдЗрд▓рд░ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЦрд╛рд▓реА рдЬрдЧрд╣ (рд▓рд┐рдВрдХ) рдХрд╛ рдПрдХ рдирд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдирд╛рдо рдХреЗ рдЕрдиреБрд░реВрдк рдореВрд▓реНрдп рдЕрднреА рддрдХ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИред

рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓

рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛


рдЕрдм рддрдХ, рд╣рдордиреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╕рдм рдХреБрдЫ рдорд╛рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рджреЗрдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЙрдкрдХрд░рдг nm рдХрдорд╛рдВрдб рд╣реЛрдЧрд╛, рдЬреЛ UNIX рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП, dumpbin рдХрдорд╛рдВрдб /symbols рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдорддреБрд▓реНрдп рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП GNU рдмрд┐рдиреБрдЯрд┐рд▓ рдЯреВрд▓реНрд╕ рднреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ nm.exe рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП nm рдХреНрдпрд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ :
 Symbols from c_parts.o: Name Value Class Type Size Line Section fn_a | | U | NOTYPE| | |*UND* z_global | | U | NOTYPE| | |*UND* fn_b |00000000| t | FUNC|00000009| |.text x_global_init |00000000| D | OBJECT|00000004| |.data y_global_uninit |00000000| b | OBJECT|00000004| |.bss x_global_uninit |00000004| C | OBJECT|00000004| |*COM* y_global_init |00000004| d | OBJECT|00000004| |.data fn_c |00000009| T | FUNC|00000055| |.text 

рдкрд░рд┐рдгрд╛рдо рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ (рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП man рдХреА рд╕рд▓рд╛рд╣ рд▓реЗрдВ), рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рд┐рддреНрд░ рдФрд░ рдЙрд╕рдХреЗ рдЖрдХрд╛рд░ (рдпрджрд┐ рдореМрдЬреВрдж рд╣реИ) рдХрд╛ рд╡рд░реНрдЧ рд╣реИред рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд░реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рдЖрдк рдЙрди рд╡рд░реНрдгреЛрдВ рдХреЛ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд░реЛрдд C рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред рд╣рдо рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╕рдВрдХрд▓рдХ рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрднреА рднреА рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рд▓рд┐рдВрдХрд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ: рднрд╛рдЧ 1


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ рдлрдВрдХреНрд╢рди рдпрд╛ рд╡реИрд░рд┐рдПрдмрд▓ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рджрд╛ рд╣реИ, рдХрд┐ рдХрд╣реАрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЙрд╕ рдлрдВрдХреНрд╢рди рдпрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ, рдФрд░ рд▓рд┐рдВрдХрд░ рдХрд╛ рдХрд╛рдо рдЙрд╕ рд╡рд╛рджреЗ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрд░реЗрдЦ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ "рдЦрд╛рд▓реА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рднрд░рдиреЗ" рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдКрдкрд░ рджреА рдЧрдИ рдереА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдФрд░ рд╕реА рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ ред
 /*    */ int z_global = 11; /*      y_global_init,    static */ static int y_global_init = 2; /*     */ extern int x_global_init; int fn_a(int x, int y) { return(x+y); } int main(int argc, char *argv) { const char *message = "Hello, world"; return fn_a(11,12); } 

рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╕рд╛рд░

рджреЛрдиреЛрдВ рдЖрд░реЗрдЦреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд▓рд┐рдВрдХрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрдЧрд╛)ред рд╣рд░ рдЪреАрдЬ рдХреА рдЕрдкрдиреА рдЬрдЧрд╣ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдХреА рдЕрдкрдиреА рдЪреАрдЬ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рд┐рдВрдХрд░ рд╕рднреА рдЦрд╛рд▓реА рдЬрдЧрд╣реЛрдВ рдХреЛ рднрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (UNIX рд╕рд┐рд╕реНрдЯрдо рдкрд░, рд▓рд┐рдВрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдорддреМрд░ рдкрд░ ld рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИ)ред

рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╕рд╛рд░

рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП nm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 Symbols from sample1.exe: Name Value Class Type Size Line Section _Jv_RegisterClasses | | w | NOTYPE| | |*UND* __gmon_start__ | | w | NOTYPE| | |*UND* __libc_start_main@@GLIBC_2.0 | U | FUNC|000001ad| |*UND* _init |08048254| T | FUNC| | |.init _start |080482c0| T | FUNC| | |.text __do_global_dtors_aux|080482f0| t | FUNC| | |.text frame_dummy |08048320| t | FUNC| | |.text fn_b |08048348| t | FUNC|00000009| |.text fn_c |08048351| T | FUNC|00000055| |.text fn_a |080483a8| T | FUNC|0000000b| |.text main |080483b3| T | FUNC|0000002c| |.text __libc_csu_fini |080483e0| T | FUNC|00000005| |.text __libc_csu_init |080483f0| T | FUNC|00000055| |.text __do_global_ctors_aux|08048450| t | FUNC| | |.text _fini |08048478| T | FUNC| | |.fini _fp_hw |08048494| R | OBJECT|00000004| |.rodata _IO_stdin_used |08048498| R | OBJECT|00000004| |.rodata __FRAME_END__ |080484ac| r | OBJECT| | |.eh_frame __CTOR_LIST__ |080494b0| d | OBJECT| | |.ctors __init_array_end |080494b0| d | NOTYPE| | |.ctors __init_array_start |080494b0| d | NOTYPE| | |.ctors __CTOR_END__ |080494b4| d | OBJECT| | |.ctors __DTOR_LIST__ |080494b8| d | OBJECT| | |.dtors __DTOR_END__ |080494bc| d | OBJECT| | |.dtors __JCR_END__ |080494c0| d | OBJECT| | |.jcr __JCR_LIST__ |080494c0| d | OBJECT| | |.jcr _DYNAMIC |080494c4| d | OBJECT| | |.dynamic _GLOBAL_OFFSET_TABLE_|08049598| d | OBJECT| | |.got.plt __data_start |080495ac| D | NOTYPE| | |.data data_start |080495ac| W | NOTYPE| | |.data __dso_handle |080495b0| D | OBJECT| | |.data p.5826 |080495b4| d | OBJECT| | |.data x_global_init |080495b8| D | OBJECT|00000004| |.data y_global_init |080495bc| d | OBJECT|00000004| |.data z_global |080495c0| D | OBJECT|00000004| |.data y_global_init |080495c4| d | OBJECT|00000004| |.data __bss_start |080495c8| A | NOTYPE| | |*ABS* _edata |080495c8| A | NOTYPE| | |*ABS* completed.5828 |080495c8| b | OBJECT|00000001| |.bss y_global_uninit |080495cc| b | OBJECT|00000004| |.bss x_global_uninit |080495d0| B | OBJECT|00000004| |.bss _end |080495d4| A | NOTYPE| | |*ABS* 

рдЗрд╕рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд╕рднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдЕрдХреНрд╖рд░ рдЧрд╛рдпрдм рд╣реИрдВред рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░ рдПрдХ рд╕рд╛рде рд╣реЛрдВред рдФрд░ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдУрдПрд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдРрдб-рдСрди рднреА рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╡рд┐рд╡рд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдХреЛ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЪрд░рд┐рддреНрд░реЛрдВ рдХреА рдирдХрд▓ рдХрд░реЛ


рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд▓рд┐рдВрдХрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╣ рдЙрд╕ рдкреНрд░рддреАрдХ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рдЦреЛрдЬ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдорд┐рд▓рд╛ рд╣реИред рдФрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рд▓реЗрдЖрдЙрдЯ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рджреЛ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдорд┐рд▓рддреА рд╣реИрдВ?

рд╕реА ++ рдореЗрдВ, рд╕рдорд╛рдзрд╛рди рд╕реАрдзрд╛ рд╣реИред рднрд╛рд╖рд╛ рдХреА рдПрдХ рд╕реАрдорд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЖрдЙрдЯ рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдордирд╛ рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХреЛрдИ рдЕрдзрд┐рдХ рдирд╣реАрдВ, рдХрдо рдирд╣реАрдВред (C ++ рдорд╛рдирдХ рдХрд╛ рд╕рдВрдЧрдд рдЕрдзреНрдпрд╛рдп 3.2 рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ)

рд╕реА рдХреЗ рд▓рд┐рдП, рдЪреАрдЬреЗрдВ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдПрдХ рдЖрд░рдВрднрд┐рдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд╕рд┐рдВрдЪрд┐рдд рдЪрд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд╕реА рднрд╛рд╖рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдирд┐рд╖реЗрдз рдирд╣реАрдВ рдХрд░рддреА рд╣реИ) рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрддреА рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рд┐рдВрдХрд░реНрд╕ рдХреЛ рд╕реА рдФрд░ рд╕реА ++ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдирд┐рдпрдо рдХрд╛ рд╕рдореНрдорд╛рди рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХрд┐ рд╡рд╣ рд╣рд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓рд┐рдВрдХрд░ рдХреЛ рдлрд┐рд░ рдПрдХ рдкреНрд░рддрд┐ (рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐, рдпрджрд┐ рд╡реЗ рдЖрдХрд╛рд░ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВ) рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдХреА рдХреЛ рддреНрдпрд╛рдЧ рджреЗрдВред рдЗрд╕ рдореЙрдбрд▓ рдХреЛ рдХрднреА-рдХрднреА рдлрд╝реЛрд░реНрдЯреНрд░рди рдХреЙрдорди (рд╕рд╛рдорд╛рдиреНрдп) рдХреАрд╡рд░реНрдб рдХреЗ рдХрд╛рд░рдг рд▓реЗрдЖрдЙрдЯ рдХрд╛ "рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбрд▓" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, UNIX рд▓рд┐рдВрдХрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡рд░реНрдгреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдХрд╕рдо рдЦрд╛рдирд╛ рдмрд┐рд▓рдХреБрд▓ рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдпрджрд┐ рд╡реЗ рдмрд┐рдирд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╡рд╛рд▓реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡рд░реНрдг рд╣реИрдВ (рдпрд╣ рд▓реЗрдЖрдЙрдЯ рдореЙрдбрд▓ рдХрднреА-рдХрднреА "рдвреАрд▓реА рдпреБрдЧреНрдорди рд╡рд╛рд▓рд╛ рдореЙрдбрд▓" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ] [рдпрд╣ рдореЗрд░рд╛ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж рд╣реИ ред def рдореЙрдбрд▓ред рдмреЗрд╣рддрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ])ред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ (рдФрд░ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП), рддреЛ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╢рд╛рдВрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ - --- рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓рд┐рдВрдХрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЗ рдкрд░рд╛рдорд░реНрд╢ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GNU -fno-common , -fno-common рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЛ рдЖрдо (COMMON) рдмреНрд▓реЙрдХ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп BBS рд╕реЗрдЧрдореЗрдВрдЯ рдореЗрдВ рдПрдХ -fno-common рд╡реИрд░рд┐рдПрдмрд▓ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?


рдЕрдм рдЬрдм рд▓рд┐рдВрдХрд░ рдиреЗ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рд▓рд┐рдВрдХ рдХреЛ рдкреНрд░рддреАрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдкрд░рд┐рднрд╛рд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд┐рд░рд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдЖрдк рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

рдкрд╛рдареНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдирд╛ рдорд╢реАрди рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдУрдПрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рд╛рд░реНрдб рдбрд┐рд╕реНрдХ рд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЗрдореЛрд░реА рдХреЗ рдорд╢реАрди рдХреЛрдб рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдВ рд╕реЗ рд╕реАрдкреАрдпреВ рдЗрд╕реЗ рдЙрдард╛ рд╕рдХрддрд╛ рд╣реИред рдЗрди рднрд╛рдЧреЛрдВ рдХреЛ рдПрдХ рдХреЛрдб рдЦрдВрдб (рдХреЛрдб рдЦрдВрдб рдпрд╛ рдкрд╛рда рдЦрдВрдб) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рднреА рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рднреА рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдЬрдЧрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрд░рдВрднрд┐рдХ рдФрд░ рдЧреИрд░-рдорд╛рдирдХреАрдХреГрдд рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реИред рдЖрд░рдВрднрд┐рдХ рдЪрд░ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдУрдПрд╕ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдкреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред

рдЕрд╕рд┐рдВрдЪрд┐рдд рдЪрд░ рдХреЗ рд▓рд┐рдП, OS рдорд╛рди рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ 0 рд╣реИ, рдЕрд░реНрдерд╛рддред рдХрд┐рд╕реА рднреА рдорд╛рди рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕реНрдореГрддрд┐ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЬреЛ рд╢реВрдиреНрдп рд╕реЗ рдЖрд░рдВрдн рд╣реЛрддрд╛ рд╣реИ рдЙрд╕реЗ bss рдЦрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдЖрд░рдВрднрд┐рдХ рдЪрд░ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрд╕рд┐рдВрдЪрд┐рдд рдЪрд░ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрднреА рддрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд▓рд┐рдВрдХрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ; рд╣рдордиреЗ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡реНрдпрд╛рдкреНрдд рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ ред

рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдВрдХрд░ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╢реБрд░реВ рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ - рдмрд╣реБрдд рдмрд╛рдж рдореЗрдВ рд▓рд┐рдВрдХрд░ рдиреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд░реНрдгрди рдХреА рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐:

рддрд╕реНрд╡реАрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬреЛрдбрд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдвреЗрд░ рдФрд░ рд╕реНрдЯреИрдХ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдХрд╛рдлреА рдЖрдо рд╣реИ рдХрд┐ рд╕реНрдЯреИрдХ рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдмрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдвреЗрд░ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗрд╡рд▓ рдореБрдлреНрдд рдореЗрдореЛрд░реА рдХреА рдХрдореА рдХреА рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛ рдпрджрд┐ рд╕реНрдЯреИрдХ рдФрд░ рд╣реАрдк рдмреАрдЪ рдореЗрдВ рдХрд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реНрдг рд╣реЛрдЧрд╛)ред



рд▓рд┐рдВрдХрд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ; рднрд╛рдЧ реи


рдЕрдм рдЬрдм рд╣рдордиреЗ рд▓рд┐рдВрдХрд░ рдХрд╛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХреА рдореВрд▓ рдмрд╛рддреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рднрд╛рдЧреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рд▓рдЧрднрдЧ рдЙрд╕реА рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рдХреНрд░рдо рдореЗрдВ рдЬреИрд╕реЗ рд╡реЗ рд▓рд┐рдВрдХрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред

рдореБрдЦреНрдп рдЕрд╡рд▓реЛрдХрди рдЬреЛ рд▓рд┐рдВрдХрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдирд┐рдореНрди рд╣реИ: рдпрджрд┐ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рд╣реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╕реНрдХреНрд░реАрди рдкрд░ рдЖрдЙрдЯрдкреБрдЯ, рд╣рд╛рд░реНрдб рдбрд┐рд╕реНрдХ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдирд╛, рдЖрджрд┐), рддреЛ рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд╛рди рдкрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдПрдХ рд╣реА рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдкреВрд░реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ ... рдПрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реБрд▓рдн рдЬрдЧрд╣ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛: рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп ред

рддрдХрдиреАрдХреА рд╡рд┐рд╖рдпрд╛рдВрддрд░: рдпрд╣ рдЕрдзреНрдпрд╛рдп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдВрдХрд░ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ: рд╕реНрдерд╛рдирд╛рдВрддрд░рдгред рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдпрджрд┐ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкрддреЗ рд╕реНрдерд╛рди рдкрд░ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрддреЗ рд╣реЛрдВрдЧреЗредрдмрджрд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдп рдФрд░ рдЪрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╣реЛрдВрдЧреЗред рдЕрдм, рдпрджрд┐ рд╕рднреА рдкрддреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ ("рдорд╛рди +1020 рдмрд╛рдЗрдЯ рдпрд╣рд╛рдБ рд╕реЗ") рдирд┐рд░рдкреЗрдХреНрд╖ ("рдорд╛рди 0x102218BF") рдХреЗ рдмрдЬрд╛рдп, рддреЛ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рднреА рдкреВрд░реНрдг рдкрддреЗ рдХреЛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╣реИ ред рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдХрд┐ рдЪреВрдВрдХрд┐ рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ C / C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реИред

рд╕реНрдереИрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп


рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЕрд╡рддрд╛рд░ рдПрдХ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрд╣ рд╕реНрдереИрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рд╕рд╛рд░ рд╣реИред

рдпреВрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдЖрджреЗрд╢ рдПрдХ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЖрдо рддреМрд░ рдкрд░ рд╣реИ рдЧрд┐рд░рдлреНрддрд╛рд░реА , рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╡рд┐рд╕реНрддрд╛рд░ * .a рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЙрдирдХреЗ рдирд╛рдо рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ "рд▓рд┐рдмрд╛рд╕" рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдо рдХреЗ рдмрд╛рдж "-l" рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, "-рдкреНрд░рдмрдВрдзрд┐рдд" рдлрд╛рдЗрд▓ "libredred.a") рдЙрдард╛рдПрдЧреАред
(рдкрд╣рд▓реЗ, ranlibрд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдереИрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЖрдЬрдХрд▓редarрд╡реЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░рддреЗ рд╣реИрдВред)

рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрддрд╛ рд╣реИ .LIBрдФрд░ рдЙрдиреНрд╣реЗрдВ LIB рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдереНрдп рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ "рдЗрдВрдкреЛрд░реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА" рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд╣реА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ рдЬреЛ DLL рдореЗрдВ рд╣реЛрддреА рд╣реИ - рд╡рд┐рдВрдбреЛрдЬ DLL рдкрд░ рдЕрдзреНрдпрд╛рдп рджреЗрдЦреЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рд▓рд┐рдВрдХрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЙрди рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд░рдЦрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рд╕рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓рд┐рдВрдХрд░ рдХреЗ рдкрд╛рд╕ рдЕрдм рдЙрди рдкрд╛рддреНрд░реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реНрдерд╛рди рд╣реИ рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ - рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВред рдпрджрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдореЗрдВ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд┐рд╣реНрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛, рдФрд░ рд▓реЗрдЖрдЙрдЯ рдЬрд╛рд░реА рд╣реИред

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХреНрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪрд░рд┐рддреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкреВрд░реА рд╡рд╕реНрддреБрдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреАрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧреАред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╛ рддреЛ рдПрдХ рдХрджрдо рдЖрдЧреЗ рдпрд╛ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд╣реЛ рд╕рдХрддреА рд╣реИ - рдПрдХ рдирдИ рдЬреЛрдбрд╝реА рдЧрдИ рд╡рд╕реНрддреБ рдпрд╛ рддреЛ рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд▓рд┐рдВрдХ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреА рд╣реИ рдпрд╛ рдирдП рдЕрдирд╕реБрд▓рдЭреЗ рд▓рд┐рдВрдХ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдЬреЛрдбрд╝ рд╕рдХрддреА рд╣реИред

рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рд╣реИ ; рд╕рд╛рдорд╛рдиреНрдп рд▓реЗрдЖрдЙрдЯ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдХреНрд░рдо рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдПрдХ рдкреНрд░рддреАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рд▓рд┐рдВрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИ, рддреЛ рд▓рд┐рдВрдХрд░ рдХреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред

рд╣рдо рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ; рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрди рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВao, bo, -lxрдФрд░ -lyред

рдлрд╝рд╛рдЗрд▓aobolibx.aliby.a
рд╡рд╕реНрддреБaobox1.ox2.ox3.oy1.oy2.oy3.o
Oprede-
Lenia
a1, a2, a3b1, b2x11, x12, x13x21, x22, x23x31, x32y11, y12y21, y22y31, y32
рди рд╕реБрд▓рдЭрд╛ рд╣реБрдЖ
shonnye
рд▓рд┐рдВрдХ
b2, x12a3, y22x23, y12y11y21x31

рдПрдХ рдмрд╛рд░ рдЬрдм рд▓рд┐рдВрдХрд░ рд╕рдВрд╕рд╛рдзрд┐рдд aoрдФрд░ boрдЬреБрдбрд╝рд╛ рд╣реБрдЖ b2рд╣реИ рдФрд░ a3рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПрдЧреА, рдЬрдмрдХрд┐ x12рдФрд░ y22рдЕрднреА рднреА рдЕрдирд╕реБрд▓рдЭреЗ рд╣реИрдВред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд▓рд┐рдВрдХрд░ libx.aрд▓рд╛рдкрддрд╛ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд╛рддрд╛ рд╣реИ рдХрд┐ x1.oрд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ x12; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕рд╛ рдХрд░рдиреЗ рдкрд░, x23рдЙрдиреНрд╣реЗрдВ y12рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд▓рд┐рдВрдХ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдм рд╕реВрдЪреА рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ y22, x23, y12)ред

рд▓рд┐рдВрдХрд░ рдЕрднреА рднреА рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ libx.a, рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЛ x23рдЖрд╕рд╛рдиреА рд╕реЗ рдореБрдЖрд╡рдЬрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ x2.oрд╕реЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ libx.aред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ y11рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рдмрди рдЧрдпрд╛ y22, y12, y11)ред рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИlibx.aрдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХрд░ рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ liby.aред

рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдВрдХрд░ рд╢рд╛рдорд┐рд▓ рд╣реИ y1.oрдФрд░ y2.oред рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ y21, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ y2.oрдЕрднреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛, рдЗрд╕ рд▓рд┐рдВрдХ рдХреЛ рдмрд╕ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ (рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВ) рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдХреБрдЫ рд╣рдж рддрдХ рдмрджрд▓рддреА рд╣реИ, рдЕрдЧрд░ рдХрд╣рддреЗ рд╣реИрдВ, рдореИрдВ boрднреА рдПрдХ рд▓рд┐рдВрдХ рдерд╛ y32ред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛, рддреЛ рд▓реЗрдЖрдЙрдЯ libx.aрднреА рд╣реЛрддрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ liby.aрд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддрд╛ y3.oред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рд╣рдо рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗx31рдЕрдирд╕реБрд▓рдЭреЗ рдкрд╛рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдпрд╣ рд▓рд┐рдВрдХ рдЕрдирд╕реБрд▓рдЭреЗ рд░рд╣реЗрдВрдЧреЗ - рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд▓рд┐рдВрдХрд░ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ libx.aрдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдм рдЗрд╕ рдкреНрд░рддреАрдХ (c x3.o) рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреА ред

(рд╡реИрд╕реЗ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ libx.aрдФрд░ liby.aрдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЦрд░рд╛рдм рд╣реИ )

рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп


рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреИрд╕реЗ рдорд╛рдирдХ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдЖрдорддреМрд░ рдкрд░ libc) рдПрдХ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рджреЛрд╖ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рд╣реА рдХреЛрдб рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реЛрдЧреАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реИ printf, fopenрдФрд░ рдЬреИрд╕реА рд╣реИ, рддреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдПрдХ рдХрдо рд╕реНрдкрд╖реНрдЯ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рдХреЛрдб рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рддрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдмрдЧ printfрдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ , рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд╣реА рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрди рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЖрдорддреМрд░ рдкрд░ рдЙрдирдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ .soрдпрд╛ рддреЛ .dllрд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рд╣реИ рдФрд░.dylibMac OS X рдкрд░)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд▓рд┐рдВрдХрд░ рдПрдХ "IOU" рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреВрдкрди рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ (рдЖрдИ рдУрд╡ рдпреВ = рдЖрдИ рдпреВ рдпреВ) рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рдЗрд╕ рдХреВрдкрди рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рд╕реЗ рдЙрдмрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд▓рд┐рдВрдХрд░ рдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд▓рд┐рдВрдХрд░ рдкреНрд░рддреАрдХ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рдЙрд╕ рдкреНрд░рддреАрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдУрдПрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╢реЗрд╖ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╕рдордп рдкрд░ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ main, рд▓рд┐рдВрдХрд░ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг (рдЬрд┐рд╕реЗ рдЕрдХреНрд╕рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИld.so) рд╡рд╛рджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХрд┐рдВрдЧ рдПрдХреНрдЯ рдХреЛ рдореМрдХреЗ рдкрд░ рдХрд░рддрд╛ рд╣реИ - рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рдбрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рдХреА рдПрдХ рдкреНрд░рддрд┐ рдирд╣реАрдВ рд╣реИ printfред рдпрджрд┐ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг printfрдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрд╕ рдмрджрд▓рдХрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ libc.so- рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдЧрд╛, рддреЛ рдПрдХ рдирдпрд╛ printfрдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред

рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмреАрдЪ рдПрдХ рдФрд░ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИ рдФрд░ рдпрд╣ рд▓реЗрдЖрдЙрдЯ рдХреА рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдг рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрд╣реЛ рддреЛ) printfрд╕реЗlibc.so), рдлрд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрддреЗ рд╕реНрдерд╛рди рдореЗрдВ рд░рдЦреА рдЧрдИ рд╣реИред рд╕реНрдереИрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдпрд╣ рдореБрдЦреНрдп рдЕрдВрддрд░ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдЪрд░рд┐рддреНрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдВрдХрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдвреЗрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛрддрд╛ рд╣реИ ar), рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреЗ рд▓рд┐рдВрдХ рд╕реЗ рдпреБрдХреНрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ nmрдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рд╣реИ: рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдХрдИ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛, рдпрджрд┐ рдпрд╣ рдЙрдкрдХрд░рдг рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рдЭрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ liby.soрдХреЗрд╡рд▓ рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдЪрд░рд┐рддреНрд░ рд╣реИредx31ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдЖрджреЗрд╢ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛: рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдб рд▓рд┐рдВрдХ y32рдореЗрдВ bcрдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╕рд╛рдордЧреНрд░реА y3.oрдФрд░ x3.oрд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддреЛ рд╡реИрд╕реЗ, рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдпрд╣ рд╣реИ ldd; рдпреВрдирд┐рдХреНрд╕ рдордВрдЪ рдкрд░, рдпрд╣ рд╕рднреА рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрд╛рдЗрдирд░реА (рдпрд╛ рдПрдХ рдЕрдиреНрдп рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдпрд╣ рд╕рдВрдХреЗрдд рднреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЛрдбрд░ рдХреЛ рдЕрдкрдиреЗ рд╕рднреА рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЗ рд╕рд╛рде рдЗрди рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред (рдЖрдорддреМрд░ рдкрд░, рд▓реЛрдбрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ LD_LIBRARY_PATHред)
 /usr/bin:ldd xeyes linux-gate.so.1 => (0xb7efa000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb7edb000) libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb7ec6000) libXt.so.6 => /usr/lib/libXt.so.6 (0xb7e77000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb7d93000) libSM.so.6 => /usr/lib/libSM.so.6 (0xb7d8b000) libICE.so.6 => /usr/lib/libICE.so.6 (0xb7d74000) libm.so.6 => /lib/libm.so.6 (0xb7d4e000) libc.so.6 => /lib/libc.so.6 (0xb7c05000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c01000) libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7bff000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7be8000) libdl.so.2 => /lib/libdl.so.2 (0xb7be4000) /lib/ld-linux.so.2 (0xb7efb000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7bdf000) 

рдЕрдзрд┐рдХ рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░реНрдпрд╛рдкреНрдд рдмреБрджреНрдзрд┐рдорд╛рди рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕реНрдереИрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЖрдЗрдЯрдо рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рд╣реА рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рдХреЛрдб рд╕реЗрдЧрдореЗрдВрдЯ (рд▓реЗрдХрд┐рди рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рдпрд╛ рдПрдХ рдмреАрдПрд╕рдПрд╕ рд╕реЗрдЧрдореЗрдВрдЯ рдирд╣реАрдВ) рднреА рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ strtokред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдПрдХ рдЭрдЯрдХреЗ рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рд╕рднреА рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдПрдХ рдЕрдиреВрдареЗ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ aoрдФрд░ co, рдФрд░ рджреВрд╕рд░реА boрдФрд░ co, рддреЛ OS рдХрд┐рд╕реА рднреА рдореИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╡рд┐рдВрдбреЛрдЬ рдбреАрдПрд▓


рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рдпреВрдирд┐рдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рджреЛрдиреЛрдВ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ, рдлрд┐рд░ рднреА рдХреБрдЫ рд╡рд┐рд╡рд░рдг рд╣реИрдВ рдЬреЛ рдиреНрдпреВрдмрд╛рдп рдкрд░ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддреАрдХ

рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреВрдирд┐рдХреНрд╕ рдкрд░, рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рднреА рд╡рд░реНрдг рдЬреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╡реЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рд╡рд░реНрдг рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреНред рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред

рдПрдХ рдкреНрд░рддреАрдХ рдФрд░ рдПрдХ Windows DLL рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ (рдФрд░ рдЗрди рддреАрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЛ рдПрдХ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдЬреИрд╕реЗ рд╣реА C ++ рдЗрд╕ рдорд┐рд╢рдорд╛рд╢ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрдХрд▓рдХ рдирд╛рдореЛрдВ рдХреЛ рд╕рдЬрд╛рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ

.LIB рдФрд░ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реЗрдВ

рд╣рдо рд╡рд┐рдВрдбреЛрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рджреВрд╕рд░реА рдХрдард┐рдирд╛рдИ рдкрд░ рдЖрддреЗ рд╣реИрдВ: рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рдЬрд┐рд╕реЗ рд▓рд┐рдВрдХрд░ рдХреЛ рдмрд╛рдХреА рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдирд╣реАрдВ рд╣реИ DLLред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдмрдВрдзрд┐рдд .LIBрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ ред

.LIBрдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд DLLрд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ (рдирд┐рд░реНрдпрд╛рдд) рд╡рд░реНрдг DLLрдЕрдкрдиреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╣реИрдВред рдХреЛрдИ рднреА рдмрд╛рдЗрдирд░реА рдЬреЛ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ DLLрд▓рд┐рдП .LIBрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ред

рдЪреАрдЬреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ .LIBрдЙрдкрдпреЛрдЧ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд╕рд╛рде рдореЗрдВ.LIBрдлрд╝рд╛рдЗрд▓, рд╕рд╛рде рд╣реА рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ (рд╡реИрдХрд▓реНрдкрд┐рдХ) .DEFрдлрд╝рд╛рдЗрд▓, рдЖрдк рдЕрдкрдиреА Windows рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЬреБрдбрд╝реА рд╕рднреА рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдпреВрдирд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИ, рдЬрд╣рд╛рдВ рдЗрди рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд▓рдЧрднрдЧ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдмрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╣реА рдЬреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИред

рдЖрдпрд╛рддрд┐рдд рдкрд╛рддреНрд░

рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DLL рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде , Windows рдЙрди рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ 16-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЧреБрдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рдЧрддрд┐ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдг рдХреЛ __declspec (dllimport) рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
 __declspec(dllimport) int function_from_some_dll(int x, double y); __declspec(dllimport) extern int global_var_from_some_dll; 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШреЛрд╖рдгрд╛ рд╕реА рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреЛрди рд╣реИред рдпрд╣ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд┐рдмреВрдЯ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ: рдлрд╝рдВрдХреНрд╢рди / рдЪрд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╡рд╛рд▓реЗ DLL рдореЗрдВ рдХреЛрдб рдХреЛ рдЪрд░рд┐рддреНрд░ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП , рд▓реЗрдХрд┐рди DLL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╡рд░реНрдг рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
 #ifdef EXPORTING_XYZ_DLL_SYMS #define XYZ_LINKAGE __declspec(dllexport) #else #define XYZ_LINKAGE __declspec(dllimport) #endif XYZ_LINKAGE int xyz_exported_function(int x); XYZ_LINKAGE extern int xyz_exported_variable; 

DLL рдореЗрдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ рдЪрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрд░ рдХреЛ EXPORTING_XYZ_DLL_SYMSрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдорддрд▓рдм рдХреЗ рдЕрдиреБрд╕рд╛рд░ #define) рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЪрд░рд┐рддреНрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рднреА рдЕрдиреНрдп рдХреЛрдб рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕ рд╡рд░реНрдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред

рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛

рдбреАрдПрд▓рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдФрд░ рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдХрдареЛрд░ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╣рд░ рд╡рд░реНрдг рдХреЛ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреНрд╕ рдкрд░, рдПрдХ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдирд╕реБрд▓рдЭреЗ рдЪрд░рд┐рддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рд╡рд░реНрдг рдЬрд┐рдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╣реИ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХреЛрдб рдХреЛ рдЕрдирд╕реБрд▓рдЭреЗ рдкрд╛рддреНрд░реЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреА рд╣реЛрдЧреА, рдЕрдиреНрдпрдерд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд┐рдВрдбреЛрдЬ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВ, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ - рдкрд╣рд▓реЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдлрд┐рд░ рдЙрдЪреНрдЪ, рдФрд░ рдлрд┐рд░ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓, рдЬреЛ рдЕрдиреНрдп рд╕рднреА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рдмреАрдЪ рдПрдХ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рддрдм рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ X.DLLрдХрд┐рд╕реА рдкреНрд░рддреАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ Y.DLL, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ Y.DLLрдкреНрд░рддреАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ X.DLL, рддреЛ рдЖрдкрдХреЛ рдЪрд┐рдХрди рдФрд░ рдЕрдВрдбреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдХреЛрдИ рднреА рдЪреАрдЬ рдЬреЛ рдкрд╣рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ, рд╡рд╣ рд╕рднреА рдкреНрд░рддреАрдХреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдкрд╛ рд╕рдХреЗрдЧреАред

рд╡рд┐рдВрдбреЛрдЬ рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ ред

рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрдЧрдард┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗ ...

рдЪрд┐рддреНрд░ рдХреЛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C ++


C ++, C рдореЗрдВ рдЬреЛ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЙрд╕рд╕реЗ рдкрд░реЗ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд▓рд┐рдВрдХрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВред рдпрд╣ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ - рдкрд╣рд▓рд╛ рд╕реА ++ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдВрдЧрддрддрд╛ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдордп рдХреЗ рд╕рд╛рде, рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝реА рдЧрдИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рд╕рдорд╛рд░реЛрд╣ рдЕрддрд┐рднрд╛рд░рд┐рдд рдФрд░ рдирд╛рдо рд╕рдЬрд╛рд╡рдЯ


C ++ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рдВрд╕, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡реАрдХреГрдд рдкреНрд░рдХрд╛рд░реЛрдВ (рд╡рд┐рднрд┐рдиреНрди рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ ) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ :
 int max(int x, int y) { if (x>y) return x; else return y; } float max(float x, float y) { if (x>y) return x; else return y; } double max(double x, double y) { if (x>y) return x; else return y; } 

рдпрд╣ рд░рд╛рдЬреНрдп рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХрд░ рдХреЗ рдХрд╛рдо рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рдХреЛрдИ рдХреЛрдб рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ max, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдорддрд▓рдм рдерд╛?

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдирд╛рдо рд╕рдЬрд╛рдиреЗ (рдирд╛рдо mangling), рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╛рд░реЛрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ (рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рдз рдХрд░рдирд╛ = рдмрд┐рдЧрд╛рдбрд╝рдирд╛, рдЦрд╝рд░рд╛рдм, prim.perред ) рдкрд╛рда рд░реВрдк рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рдПрдХ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдирд╛рдо рд╣реИ рдореЗрдВред рд╡рд┐рднрд┐рдиреНрди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдореЛрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд╛рдореЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдЬрд╛рд╡рдЯ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ (рдЬреЛ рдХрд┐ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рднреА рднрд┐рдиреНрди рд╣реИ), рд▓реЗрдХрд┐рди рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рдЕрдиреБрд░реВрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдпрд╣ рд╕рдм рд╕рдордЭрдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рджреЗрдЧрд╛ (рдпрд╛рдж рд░рдЦреЗрдВ)nm - рдЖрдкрдХрд╛ рджреЛрд╕реНрдд!):
 Symbols from fn_overload.o: Name Value Class Type Size Line Section __gxx_personality_v0| | U | NOTYPE| | |*UND* _Z3maxii |00000000| T | FUNC|00000021| |.text _Z3maxff |00000022| T | FUNC|00000029| |.text _Z3maxdd |0000004c| T | FUNC|00000041| |.text 

рдпрд╣рд╛рдВ рд╣рдо рддреАрди рдлрд╝рдВрдХреНрд╢рди рджреЗрдЦрддреЗ рд╣реИрдВ max, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рд╣рдо рд╕реНрдорд╛рд░реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рдЕрдзрд┐рдХрддрдо" рдХреЗ рдмрд╛рдж рдХреЗ рдЕрдЧрд▓реЗ рджреЛ рдЕрдХреНрд╖рд░ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - "i" рдЬреИрд╕реЗ int, "f" рдЬреИрд╕реЗ float"d" рдХреИрд╕реЗ double(рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреАрдЬреЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдпрджрд┐ рдХрдХреНрд╖рд╛рдПрдВ, рдирд╛рдо рд╕реНрдерд╛рди, рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдЕрддрд┐рднрд╛рд░рд┐рдд рдСрдкрд░реЗрдЯрд░ рдЦреЗрд▓ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ!)ред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдФрд░ рд▓рд┐рдВрдХрд░ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреЗ рдмреАрдЪ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП c++filt) рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ( --demangleрдЬреАрдПрдирдпреВ рдПрдирдПрдо рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ) рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:
 Symbols from fn_overload.o: Name Value Class Type Size Line Section __gxx_personality_v0| | U | NOTYPE| | |*UND* max(int, int) |00000000| T | FUNC|00000021| |.text max(float, float) |00000022| T | FUNC|00000029| |.text max(double, double) |0000004c| T | FUNC|00000041| |.text 

рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рдЬрд╣рд╛рдВ рд╕рдЬрд╛рд╡рдЯ рдпреЛрдЬрдирд╛рдПрдВ рдЕрдХреНрд╕рд░ рдЧрд▓рддрд┐рдпрд╛рдВ рдХрд░рддреА рд╣реИрдВ, рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╕реА рдФрд░ рд╕реА ++ рдХреЛ рдЗрдВрдЯрд░рд╡реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╕рднреА рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ; C рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╕рднреА рд╡рд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, C ++ рдЖрдкрдХреЛ extern "C"рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рд░рдЦрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рд╣рдо C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдирд┐рд╢реНрдЪрд┐рдд рдирд╛рдо рдХреЛ рд╕рдЬрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╛ рддреЛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ C ++ рдлрд╝рдВрдХреНрд╢рди рдХреА рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕реЗ C рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рддрдм рдпрд╣ C рдлрд╝рдВрдХреНрд╢рди рдХреА рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕реЗ C ++ рдХреЛрдб рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред

рд▓реЗрдЦ рдХреЗ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рдХреЛрдИ рдЖрд╕рд╛рдиреА рд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ extern "C"C рдФрд░ C ++ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╕рдордп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ ред
 g++ -o test1 test1a.o test1b.o test1a.o(.text+0x18): In function `main': : undefined reference to `findmax(int, int)' collect2: ld returned 1 exit status 

рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрдХреЗрдд рдпрд╣ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ findmaxрдирд╣реАрдВ рдорд┐рд▓рд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, C ++ рдХреЛрдб рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ "_Z7findmaxii", рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрд╛рддрд╛ рд╣реИ "findmax"ред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд▓реЗрдЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред

рд╡реИрд╕реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдШреЛрд╖рдгрд╛ рдХреЛ extern "C"рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рджрд╕реНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (C ++ рдорд╛рдирдХ рдХреЗ .47.5.4)

рд╕реНрдереИрддрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╢реБрд░реБрдЖрдд


рд▓рд┐рдВрдХрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдЧрд▓реА рд╕реА ++ рд╕рдВрдкрддреНрддрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рд╣реИ ред рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЙрдирдХрд╛ рдХрд╛рдо рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рд╣рдо рдХреЛрдб рдХреЗ рдордирдорд╛рдиреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЕрдзреНрдпрд╛рдп

рд╕реЗ рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реА рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕рд░рд▓ рд╣реИ: рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдмрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдбреЗрдЯрд╛ рдЦрдВрдб рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред

рд╕реА ++ рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ; рдХрдХреНрд╖рд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рджреМрд░рд╛рди рд╡рд┐рднрд┐рдиреНрди рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдореЗрдВ рд╕рднреА рдХреЛрдб рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд░рддреНрдпреЗрдХ C ++ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдереЛрдбрд╝реА рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ; рдЕрд░реНрдерд╛рддреН, рдпрд╣ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рд▓рд┐рдВрдХрд░ рдЗрди рд╕рднреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЙрди рдХреЛрдб рдХреЛ рднреА рдбрд╛рд▓рддрд╛ рд╣реИ рдЬреЛ рдкреВрд░реА рд╕реВрдЪреА рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рд╕рднреА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрджреЗрд╢, рдЬрд┐рд╕рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХреА рдЪрдкреЗрдЯ рдореЗрдВ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред (рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдХреЙрдЯ рдорд╛рдпрд░реНрд╕ рдХреЗ рдкреНрд░рднрд╛рд╡реА рд╕реА ++ рджреЗрдЦреЗрдВ - рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдиреЛрдЯ 47 , рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдиреЛрдЯ 4 )

рд╣рдо рдЗрди рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╕реЗ рдорджрдж рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ nmред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд C ++ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
 class Fred { private: int x; int y; public: Fred() : x(1), y(2) {} Fred(int z): x(z), y(3) {} }; Fred theFred; Fred theOtherFred(55); 

рдЗрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП ( рд╕рдЬрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛), рдЖрдЙрдЯрдкреБрдЯ nmрдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 Symbols from global_obj.o: Name Value Class Type Size Line Section __gxx_personality_v0| | U | NOTYPE| | |*UND* __static_initialization_and_destruction_0(int, int) |00000000| t | FUNC|00000039| |.text Fred::Fred(int) |00000000| W | FUNC|00000017| |.text._ZN4FredC1Ei Fred::Fred() |00000000| W | FUNC|00000018| |.text._ZN4FredC1Ev theFred |00000000| B | OBJECT|00000008| |.bss theOtherFred |00000008| B | OBJECT|00000008| |.bss global constructors keyed to theFred |0000003a| t | FUNC|0000001a| |.text 

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд░реНрдЧ рдбрдмреНрд▓реНрдпреВ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ "рдХрдордЬреЛрд░" рдкреНрд░рддреАрдХ) рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдирд╛рдо рдЬреИрд╕реЗ ".gnu.linkonce" рдХреЗ рд╕рд╛рде рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реИрдВред рдЯреАред рд╕рд╛рдорд╛рди ред " рдпреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрд░ рд╣реИрдВ рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖реЗрддреНрд░ "рдирд╛рдо" рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ рджреЛ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ max, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреА рдХреЛрдб рддреАрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИред рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╛рди рдХреЛрдб рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдирд╛ рдПрдХ рдЦрд░рд╛рдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреЛрди рд╣реИред

C ++ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо max_template.hрдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ max:
 template <class T> T max(T x, T y) { if (x>y) return x; else return y; } 

рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ:
 #include "max_template.h" int main() { int a=1; int b=2; int c; c = max(a,b); //   ,    max<int>(int,int) double x = 1.1; float y = 2.2; double z; z = max<double>(x,y); //    ,   max<double>(double,double) return 0; } 

рдпрд╣ C ++ рдХреЛрдб рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ max<int>(int,int)рдФрд░ max<double>(double,double)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдЕрдиреНрдп рдХреЛрдб рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЪреНрдЫрд╛, рдХрд╣реЛ, max<float>(float,float)рдпрд╛ рднреА max<MyFloatingPointClass>(MyFloatingPointClass,MyFloatingPointClass)ред

рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдПрдХ рдЕрд▓рдЧ рдорд╢реАрди рдХреЛрдб рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрд┐рд╕ рд╕рдордп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдВрдд рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдПрдХ рднреА рдЕрдкреНрд░рдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдирд╛ рди рд╣реЛ)ред

рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЖрдорддреМрд░ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рджреЛ рд░рд╛рд╕реНрддреЗ рд╣реЛрддреЗ рд╣реИрдВ: рдпрд╛ рддреЛ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдкрддрд▓рд╛ рдХрд░рдирд╛ рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдХреЛ рдЙрджрд╛рд╣рд░рдг рджреЗрдирд╛ (рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрди рддрд░реАрдХреЛрдВ рдХреЛ рд╕рди рдХреЗ рд╕реНрдорд╛рд░реНрдЯ рдкрде рдФрд░ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ)ред

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдкрддрд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдВрдХрд┐рдд рд╕рднреА рдкреИрдЯрд░реНрди рдХрд╛ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
 Symbols from max_template.o: Name Value Class Type Size Line Section __gxx_personality_v0 | | U | NOTYPE| | |*UND* double max<double>(double, double) |00000000| W | FUNC|00000041| |.text _Z3maxIdET_S0_S0_ int max<int>(int, int) |00000000| W | FUNC|00000021| |.text._Z3maxIiET_S0_S0_ main |00000000| T | FUNC|00000073| |.text 

рдФрд░ рд╣рдо рджреЛрдиреЛрдВ рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ max<int>(int,int)рдФрд░ max<double>(double,double)ред

рджреЛрдиреЛрдВ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХрдордЬреЛрд░ рд╡рд░реНрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп, рд▓рд┐рдВрдХрд░ рдПрдХ рд╣реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХреЛ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдпрджрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╕рдордЭрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд╕рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рдЙрд╕реА рдХреЛрдб рдореЗрдВ)ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдиреБрдХрд╕рд╛рди рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реИред

рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЛрд▓рд╛рд░рд┐рд╕ рд╕реА ++ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╣реИред рдЬрдм рдпрд╣ рд▓реЗрдЖрдЙрдЯ рдЪрд░рдг рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рд▓рд┐рдВрдХрд░ рд╕рднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдорд╢реАрди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдорд╛рдЗрдирд╕ рдпрд╣ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХрд░ рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)

рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рднрд░реА рд╣реБрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА


рдЕрдВрддрд┐рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рд╣рдо рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ рд╡рд╣ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рд╣реИред рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдВрддрд┐рдо рд╡реНрдпрд╡рд╕реНрдерд╛ рд╕реНрдердЧрд┐рдд рдЬрдм рддрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдпрд╣ рдмрд╛рдж рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рднреА рд╕рдВрднрд╡ рд╣реИред

рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ dlopenрдФрд░ dlsym(рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдорддреБрд▓реНрдп рдХреНрд░рдорд╢рдГ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ LoadLibraryрдФрд░ GetProcAddress)ред рдкрд╣рд▓реЗ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЪрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрддреЗ рд╕реНрдерд╛рди рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЕрдирд╕реБрд▓рдЭреЗ рдЪрд░рд┐рддреНрд░ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдХреЙрд▓ dlopenрдЕрдиреНрдп рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХрддреА рд╣реИред

dlopenрд▓рд╛рдпрдмреНрд░реЗрд░реА рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╛ рддреЛ рд╕рднреА рдЕрдирд╕реБрд▓рдЭреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, ( RTLD_NOW) рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ ( RTLD_LAZY)ред рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЙрд▓ рдореЗрдВ dlopenрдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЬреЛрдЦрд┐рдо рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд▓рд┐рдВрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЙрд╕ рд╕рдордп рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдмреЗрд╢рдХ, рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рднрд░реА рд╣реБрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдореЗрдВ рдПрдХ рдирд╛рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рдХреЗ рд╡рд░реНрдХрдЖрд░реНрдб рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рднреАред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд░реНрдг рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЙрд▓dlsymрдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрдг рдХреЗ рдирд╛рдо рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╕реВрдЪрдХ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдпрд╛ NULLрдпрджрд┐ рдЪрд░рд┐рддреНрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ)ред

C ++ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛


рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╕реА ++ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рд▓рд┐рдВрдХрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ?

рдкрд╣рд▓рд╛ рдЕрд╡рд▓реЛрдХрди рд╕рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЬрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ dlsym, рддреЛ рдкрд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдирд╛рдо рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдпрд╣ рд▓рд┐рдВрдХрд░ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддред рд╕рдЬрд╛рдпрд╛ рд╣реБрдЖ рдирд╛рдоред

рдЪреВрдВрдХрд┐ рд╕рдЬрд╛рд╡рдЯ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реЗ рджреВрд╕рд░реЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C ++ рд╡рд░реНрдгрдХреНрд░рдо рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рднреА рд╣реИрдВ - рд╕рд░рд▓ рд╕реА-рд▓рд╛рдЗрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ (рдЖрднрд╛рд╕реА рддрд░реАрдХреЛрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рддрд╛рд▓рд┐рдХрд╛рдПрдВ) рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рднреА рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ: рдЖрдорддреМрд░ рдкрд░ extern "C"рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рдХреИрджреА рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ , рдЬреЛ рдХрд┐ рдЗрд╕ dlsymрдУрдо рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдпрд╣ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдПрдХ рдлреИрдХреНрдЯреНрд░реА рд╡рд┐рдзрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ C ++ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рднреА рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ C ++ рдХреЗ рд╕рднреА рдЪрд╛рд░реНрдЯ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рд╕рдВрдХрд▓рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рд╣рдж рддрдХ рдирд┐рдкрдЯ рд╕рдХрддрд╛ рд╣реИ dlopen, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рд▓рд┐рдВрдХрд░ рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рд▓реЛрдбрд┐рдВрдЧ рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛) рдпрджрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдпрд╛ рдЕрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рддреЛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдпрд╛ рд╡рд┐рдзреНрд╡рдВрд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЙрд▓ рдпрд╣рд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдпреВрдирд┐рдХреНрд╕ рдкрд░, рдпреЗ рдлрд╝рдВрдХреНрд╢рди _initрдФрд░ рд╣реИрдВ_finiрдпрд╛ рдЬреАрдПрдирдпреВ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЕрдзрд┐рдХ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдБ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ __attribute__((constructor))рдпрд╛ __attribute__((destructor))ред рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ, рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди DllMainрдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ DWORD fdwReasonрдмрд░рд╛рдмрд░ DLL_PROCESS_ATTACHрдпрд╛ рдЙрд╕рдХреЗ рд╕рд╛рде рд╣реИ DLL_PROCESS_DETACHред

рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рд╣рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдХрд┐ рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓реЛрдбрд┐рдВрдЧ "рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдкрддрд▓рд╛ рдХрд░рдиреЗ" рдХреЗ рд▓рд┐рдП рдЬрдм рдпрд╣ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ; рдФрд░ рд╕рдм рдХреБрдЫ "рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ" рдХреЗ рд╕рд╛рде рдЕрд╕реНрдкрд╖реНрдЯ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ" рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ (рдФрд░ рдпрд╣ рджреВрд╕рд░реА рдорд╢реАрди рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕реНрд░реЛрдд рдХреЛ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА


рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рд▓рд┐рдВрдХрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд▓рд┐рдЦрд┐рдд рдХреА рд╕рд╛рдордЧреНрд░реА рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ 95% рдХрд╡рд░ рдХрд░рддреА рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдЗрд╕ рдкреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХ рдХреИрдк рдФрд░ рдПрдб рд╡рд┐рд▓реНрд╕рди рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред


рдХреЙрдкреАрд░рд╛рдЗрдЯ ┬й 2004-2005,2009-2010 рдбреЗрд╡рд┐рдб рдбреНрд░рд╛рдпрд╕реЗрдбреЗрд▓ рдХреА

рдЕрдиреБрдорддрд┐ рдЬреАрдПрдирдпреВ рдлреНрд░реА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рд▓рд╛рдЗрд╕реЗрдВрд╕, рд╕рдВрд╕реНрдХрд░рдг 1.1 рдпрд╛ рдлреНрд░реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рд╕реА рднреА рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдХреЙрдкреА, рд╡рд┐рддрд░рд┐рдд рдФрд░ / рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреА рдЧрдИ рд╣реИ; рдмрд┐рдирд╛ рдореЛрд╣рд░реЗ-рдХрд╡рд░ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд╕рд╛рде, рдФрд░ рдХреЛрдИ рдмреИрдХ-рдХрд╡рд░ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЕрдиреБрднрд╛рдЧ рдирд╣реАрдВред рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

Source: https://habr.com/ru/post/In150327/


All Articles