рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╛рдареНрдпрдХреНрд░рдо "C ++ рдбреЗрд╡рд▓рдкрд░" рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдирд┐рд░реНрдзрд╛рд░рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреНрдпрд╛ рд╣реИ?
рдПрдХ рдирд┐рдпрддрд╛рддреНрдордХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдПрдХ рд╣реА рдкрд░реНрдпрд╛рд╡рд░рдг рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЗрдВ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдкрд░, рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рд╣реЛрдВ ред рдРрд╕реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдХрднреА-рдХрднреА рдЦреЗрд▓рдиреЗ рдпреЛрдЧреНрдп рдпрд╛ рд╕реАрд▓рдмрдВрдж рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рднреА рд╕рдорд╛рди рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдмрдирд╛рдПрдВрдЧреЗред
рдирд┐рдпрддрд╛рддреНрдордХ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдПрдВ рдРрд╕реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рд╣реЛрддреА рд╣реИрдВред рд╡реЗ рд╕рд╛рдзрд╛рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рдпрдд
рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреБрдЫ рдЪрд░, рдЬреИрд╕реЗ
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдФрд░ рд▓рдХреНрд╖реНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ , рд╕рдВрднрд╡рддрдГ рд╡рд┐рднрд┐рдиреНрди рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред
рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдЧрдардиреЛрдВ, рдЬреИрд╕реЗ
рдХреНрд░реЛрдорд┐рдпрдо ,
рд░рд┐рдкреНрд░реЛрдбреНрдпреВрд╕рдмрд▓ рдмрд┐рд▓реНрдбреНрд╕, рдпрд╛
рдпреЛрдХреНрдЯреЛ , рдиреЗ рдирд┐рд░реНрдзрд╛рд░рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рд╣реИрдВред
рдирд┐рд░реНрдзрд╛рд░рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХрд╛ рдорд╣рддреНрд╡
рдирд┐рд░реНрдзрд╛рд░рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИрдВ:
- рд╕реБрд░рдХреНрд╖рд╛ред рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдмрджрд▓рдиреЗ рд╕реЗ рдореВрд▓ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдЕрджреГрд╢реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЪрд┐рдХрд┐рддреНрд╕рд╛, рд╡рд┐рдорд╛рдирди рдФрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЬреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд╛-рдЧрдВрднреАрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдШрд╛рддрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЛ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдкрд░ рдЖрдо рд╕рд╣рдорддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
- рдЯреНрд░реИрд╕реЗрдмрд┐рд▓рд┐рдЯреА рдФрд░ рдмрд╛рдЗрдирд░реА рдХрдВрдЯреНрд░реЛрд▓ ред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрдВрдбрд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╣реА рд╕рдВрд╢реЛрдзрди рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪреЗрдХрд╕рдо рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдпрд╛ рдореИрдХрдУрдПрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг / рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рдордп рдХреЗ рд╕рд╛рде рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдВрддрд░ рд╣реЛрдЧрд╛ред
рд╕реА / рд╕реА ++ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЗрдВ
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, C / C ++ рдореЗрдВ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рд╣реИрдВред
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдВрдбреЛрдЬ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдПрдХреНрд╕рдЯреЗрдВрд╢рди
.obj
,
.lib
рд╕рд╛рде рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ
.lib
dll
рдФрд░
.exe
ред рд╡реЗ рд╕рднреА рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп (рдкреАрдИ) рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдлрд╛рдЗрд▓реЛрдВ рдХрд╛
рдбрдВрдкрдмрд┐рди рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ред рдПрдХреНрд╕рдЯреЗрдВрд╢рди
.o
,
.a
,
.so
рдФрд░ рдмрд┐рдирд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ (рдПрдХреНрдЬреАрдХреНрдпреВрдЯреЗрдмрд▓ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП) рдПрдХреНрдЬреАрдХреНрдпреВрдЯреЗрдмрд▓ рдФрд░ рдХрдВрдкреЛрдЬреЗрдмрд▓ рдлрд╛рдЗрд▓ (рдПрдХреНрдЬрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рдФрд░ рд▓рд┐рдВрдХреЗрдмрд▓ рдлреЙрд░реНрдореЗрдЯ, рдИрдПрд▓рдПрдл) рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреА рд╣реИрдВред ELF рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ
.o
,
.a
,
.dylib
рдФрд░ рдмрд┐рдирд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА (рдПрдХреНрдЬреАрдХреНрдпреВрдЯреЗрдмрд▓ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП) рдорд╛рдЪ-рдУ рдлреЙрд░реНрдореЗрдЯ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИрдВред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ
рдУрдЯреВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ
рдореИрдХрдУрдПрд╕ рдкрд░
рдПрдХреНрд╕рдХреЛрдб рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрдд
рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░рдХ рдЖрдкрдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ
рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рднрд┐рдиреНрдирддрд╛ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред рдЖрдЬ рддрдХ,
gcc
рдФрд░
clang
рдРрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВред
msvc
рд▓рд┐рдП рдХреБрдЫ
msvc
рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдирд┐рдпрддрд╛рддреНрдордХ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рдВрдХрд▓рдХ / рд▓рд┐рдВрдХрд░ рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
рд╣рдорд╛рд░реЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ рд╕рдордп рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдЪреВрдХ рдмрдирд╛рддрд╛ рд╣реИ:
- рд╕реНрд░реЛрдд рдореЗрдВ
__DATE__
рдпрд╛ __TIME__
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред - рдЬрдм рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдордп рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ MacOS рдкрд░ Windows рдФрд░ Mach-O рдкрд░ рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдИрдПрд▓рдПрдл рдлрд╛рдЗрд▓реЗрдВ рдХрд┐рд╕реА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдПрдирдХреЛрдб рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА MacOS рдкрд░ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдмреЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред
. тФЬтФАтФА CMakeLists.txt тФЬтФАтФА hello_world.cpp тФЬтФАтФА hello_world.hpp тФЬтФАтФА main.cpp тФФтФАтФА run_build.sh
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
#include "hello_world.hpp" #include <iostream> void HelloWorld::PrintMessage(const std::string & message) { std::cout << message << std::endl; }
рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛:
#include <iostream> #include "hello_world.hpp" int main(int argc, char** argv) { HelloWorld hello; hello.PrintMessage("Hello World!"); return 0; }
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо CMake рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗ:
cmake_minimum_required(VERSION 3.0) project(HelloWorld) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_library(HelloLibA hello_world.cpp) add_library(HelloLibB hello_world.cpp) add_executable(helloA main.cpp) add_executable(helloB main.cpp) target_link_libraries(helloA HelloLibA) target_link_libraries(helloB HelloLibB)
рд╣рдо рдПрдХ рд╣реА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рд╣реА рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЗрдВ рднреА рдмрдирд╛рдПрдВрдЧреЗред рд╕рднреА рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЪреЗрдХрд╕рдо рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ рдФрд░
md5sum
рдЪрд▓рд╛рдПрдБ:
mkdir build && cd build cmake .. make md5sum helloA md5sum helloB md5sum CMakeFiles/HelloLibA.dir/hello_world.cpp.o md5sum CMakeFiles/HelloLibB.dir/hello_world.cpp.o md5sum libHelloLibA.a md5sum libHelloLibB.a
рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдорд┐рд▓рддрд╛ рд╣реИ:
b5dce09c593658ee348fd0f7fae22c94 helloA b5dce09c593658ee348fd0f7fae22c94 helloB 0a4a0de3df8cc7f053f2fcb6d8b75e6d CMakeFiles/HelloLibA.dir/hello_world.cpp.o 0a4a0de3df8cc7f053f2fcb6d8b75e6d CMakeFiles/HelloLibB.dir/hello_world.cpp.o adb80234a61bb66bdc5a3b4b7191eac7 libHelloLibA.a 5ac3c70d28d9fdd9c6571e077131545e libHelloLibB.a
рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐
helloA
рдФрд░
helloB
рдкрд╛рд╕ рдПрдХ рд╣реА рдЪреЗрдХрд╕рдо рд╣реИ, рд╕рд╛рде рд╣реА Mach-O рдордзреНрдпрд╡рд░реНрддреА рд╡рд╕реНрддреБ рдлрд╝рд╛рдЗрд▓реЗрдВ
hello_world.cpp.o
, рд▓реЗрдХрд┐рди
.a
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ
stat
рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛
st_time
рдирд╛рдордХ рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
libHelloLibA.a
рдФрд░
libHelloLibB.a
рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рд╣реЗрдбрд░ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
libHelloLibB.a
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
> otool -a libHelloLibA.a Archive : libHelloLibA.a 0100644 503/20 612 1566927276 #1/20 0100644 503/20 13036 1566927271 #1/28 > otool -a libHelloLibB.a Archive : libHelloLibB.a 0100644 503/20 612 1566927277 #1/20 0100644 503/20 13036 1566927272 #1/28
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реАрд▓реНрдб рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рдмрдирд╛рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпреЗ рдлрд╝реАрд▓реНрдб рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдЪреЗрдХрд╕рдо рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдХ-рдУ рдХреЗ рдмрдЬрд╛рдп рдкреАрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдеред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрддрд░ рдмрдирд╛рдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рднреА рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
__TIME__
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рдЗрд╕рдореЗрдВ
__TIME__
рдореИрдХреНрд░реЛ рд╢рд╛рдорд┐рд▓ рд╣реЛ:
#include <iostream> #include "hello_world.hpp" int main(int argc, char** argv) { HelloWorld hello; hello.PrintMessage("Hello World!"); std::cout << "At time: " << __TIME__ << std::endl; return 0; }
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ:
625ecc7296e15d41e292f67b57b04f15 helloA 20f92d2771a7d2f9866c002de918c4da helloB 0a4a0de3df8cc7f053f2fcb6d8b75e6d CMakeFiles/HelloLibA.dir/hello_world.cpp.o 0a4a0de3df8cc7f053f2fcb6d8b75e6d CMakeFiles/HelloLibB.dir/hello_world.cpp.o b7801c60d3bc4f83640cadc1183f43b3 libHelloLibA.a 4ef6cae3657f2a13ed77830953b0aee8 libHelloLibB.a
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдпрдиреЗрд░реА рд╣реИрдВред рд╣рдо рдПрдХ
рдбрд┐рд╕реНрдХреЛрд╕реНрдХреЛрдк рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджреЛ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
> diffoscope helloA helloB --- helloA +++ helloB тФЬтФАтФА otool -arch x86_64 -tdvV {} тФВтФД Code for architecture x86_64 тФВ @@ -16,15 +16,15 @@ тФВ 00000001000018da jmp 0x1000018df тФВ 00000001000018df leaq -0x30(%rbp), %rdi тФВ 00000001000018e3 callq 0x100002d54 ## symbol stub for: __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev тФВ 00000001000018e8 movq 0x1721(%rip), %rdi ## literal pool symbol address: __ZNSt3__14coutE тФВ 00000001000018ef leaq 0x162f(%rip), %rsi ## literal pool for: "At time: " тФВ 00000001000018f6 callq 0x100002d8a ## symbol stub for: __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc тФВ 00000001000018fb movq %rax, %rdi тФВ -00000001000018fe leaq 0x162a(%rip), %rsi ## literal pool for: "19:40:47" тФВ +00000001000018fe leaq 0x162a(%rip), %rsi ## literal pool for: "19:40:48" тФВ 0000000100001905 callq 0x100002d8a ## symbol stub for: __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc тФВ 000000010000190a movq %rax, %rdi тФВ 000000010000190d leaq __ZNSt3__1L4endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_(%rip), %rsi #
рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐
__TIME__
рдЬрд╛рдирдХрд╛рд░реА
__TIME__
рдмрд╛рдЗрдирд░реА рдореЗрдВ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рдмрдирд╛рддрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Microsoft Visual Studio рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди
Microsoft Visual Studio рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХрд░ / Brepro рдзреНрд╡рдЬ рд╣реИ рдЬреЛ Microsoft рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИред рдпрд╣ рдзреНрд╡рдЬ рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ -1 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ CMake рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
.exe
рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
add_link_options("/Brepro")
рдпрд╛ рдЗрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП
.lib
set_target_properties( TARGET PROPERTIES STATIC_LIBRARY_OPTIONS "/Brepro" )
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдзреНрд╡рдЬ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╣рдорд╛рд░реЗ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдирд░реА .exe рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк (рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖) рдореЗрдВ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди .lib (рдордЪ-рдУ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд░рд╣ рд╣реА рд╕рдорд╕реНрдпрд╛) рд╕реЗ рд╕рднреА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рддрд╛ рд╣реИред рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдКрдкрд░ рдмрд╛рдд рдХреА рд╣реИ)ред .Lib рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП
COFF рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ TimeDateStamp рдлрд╝реАрд▓реНрдб рдмрдиреА рд░рд╣реЗрдЧреАред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрд╛рдЗрдирд░реА
.lib
рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ .Lib рдХреЛ рдХрд┐рд╕реА рднреА рдЬреНрдЮрд╛рдд рдорд╛рди рдХреЗ рд╕рд╛рде TimeDateStamp рдлрд╝реАрд▓реНрдб рдХреЗ рдЕрдиреБрд░реВрдк рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдмрджрд▓рдХрд░ рдареАрдХ рдХрд░рдирд╛ред
GCC рдФрд░ CLANG рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди
- gcc SOURCE_DATE_EPOCH рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЪрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди UNIX рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреЛ
__DATE__
рдФрд░ __TIME__
рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдЦреЗрд▓рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдорд╛рди рдХрд┐рд╕реА рдЬреНрдЮрд╛рдд рд╕рдордп рд╕реНрдЯреИрдореНрдк рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрдиред ZERO_AR_DATE
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдпрджрд┐ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдЧреНрд░рд╣ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рдордп ZERO_AR_DATE
рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ 0. рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ __DATE__
рдпрд╛ __TIME__
рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рд╣рдо рдЗрд╕ рдореИрдХреНрд░реЛ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╛ рддреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рд╕рдордп рдХреЛ рдирдХрд▓реА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЪрд▓рд┐рдП MacOS рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐
ZERO_AR_DATE
рдкрд░реНрдпрд╛рд╡рд░рдг
ZERO_AR_DATE
рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реЛрдВрдЧреЗред
export ZERO_AR_DATE=1
рдЕрдм, рдпрджрд┐ рд╣рдо рдЕрдкрдиреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рд╕реВрддреНрд░реЛрдВ рдореЗрдВ
__DATE__
рдореИрдХреНрд░реЛ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП), рддреЛ рд╣рдореЗрдВ рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
b5dce09c593658ee348fd0f7fae22c94 helloA b5dce09c593658ee348fd0f7fae22c94 helloB 0a4a0de3df8cc7f053f2fcb6d8b75e6d CMakeFiles/HelloLibA.dir/hello_world.cpp.o 0a4a0de3df8cc7f053f2fcb6d8b75e6d CMakeFiles/HelloLibB.dir/hello_world.cpp.o 9f9a9af4bb3e220e7a22fb58d708e1e5 libHelloLibA.a 9f9a9af4bb3e220e7a22fb58d708e1e5 libHelloLibB.a
рд╕рднреА рдЪреЗрдХрд╕рдо рдЕрдм рдПрдХ рдЬреИрд╕реЗ рд╣реИрдВред
.a
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░
.a
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред
> otool -a libHelloLibA.a Archive : libHelloLibA.a 0100644 503/20 612 0 #1/20 0100644 503/20 13036 0 #1/28 > otool -a libHelloLibB.a Archive : libHelloLibB.a 0100644 503/20 612 0 #1/20 0100644 503/20 13036 0 #1/28
рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЗрдбрд░ рдХрд╛
timestamp
рдлреАрд▓реНрдб рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдерд╛ред
рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖ рдЧрдПред рд╕рд╛рдордЧреНрд░реА рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдХреЛ рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред