рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛: рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХрдареЛрд░ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ (рд▓реЗрдХрд┐рди рд╡рд╛рдВрдЫрдиреАрдп)ред
рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬреИрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдпрд╛ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП C ++ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Qt, рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рджреЛрдиреЛрдВ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдФрд░ рдПрдбрд┐рдЯрд┐рдВрдЧ рдХреЛрдб рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдЬреЗрдиреЗрд░рд┐рдХ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рдирд╣реАрдВ рд╣реИ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдПред
рдЖрдо:
- рдирд┐: рд╢реБрд▓реНрдХред
- рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕)ред
рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА:
- рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдЯреАрдоред
- рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╣реА рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛: рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдШрдЯрдХред
- рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд┐рд▓реНрдб рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдХ рдирд╣реАрдВ рднрдЯрдХрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдЗрд╕рдХреЗ рдкреНрд▓рдЧ рдЗрди рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
- рдирд┐рд░реНрдорд┐рдд рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ред
- рд╡рд┐рднрд┐рдиреНрди рдЯреВрд▓рдХрд┐рдиреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдХрдо рд╕реЗ рдХрдо рдЬреАрд╕реАрд╕реА, рд╡рд┐рдЬреБрдЕрд▓ рд╕реА ++, рдХреНрд▓реЗрдВрдЧ)ред
- рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдиреНрдпреВрдирддрдо рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдЯреВрд▓рдЪреИрди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдХрд▓реНрдк: рдбрд┐рдмрдЧ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ред
- рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдореНрди рд╕реНрддрд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдгрд╛рд▓реА рдЖрддреНрдордирд┐рд░реНрднрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
- JVM рдХреЗ рд▓рд┐рдП pkg-config рдпрд╛ Maven Central рдЬреИрд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рдШрдЯрдХреЛрдВ рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХреАрдХрд░рдг рдЕрддреНрдпрдзрд┐рдХ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред
- рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рдг рдЕрд╡рдзрд╛рд░рдгрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╛ рдХреБрдЫ рдЧреИрд░-рдорд╛рдирдХ рдЫрд╡рд┐ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред
- рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреБрдЫ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдпрд╛ рдмреЗрд╣рддрд░ рдбреАрдПрд╕рдПрд▓ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реАрдзреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред
- рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рдХреЛ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдХрдо рд╕реЗ рдХрдо рдмреБрдирд┐рдпрд╛рджреА рд╕рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдореИрдХреНрд░реЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ? / MSVC рдкрд░ рдпрд╛ Gcc рдкрд░ -D - рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрди рдЕрд╕рдВрдЧрдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд░рдиреЗ рджреЗрдВред
- рдЪрд┐рддреНрд░рдордп рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг (IDEs) рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдПрдХреАрдХрд░рдгред
рдЖрдИрдбреАрдИ:
- IDE рдХреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ "C ++ рдХреЛрдб" рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред IDE рдХреЛ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ, рд╕рд╛рде рд╣реА рд╕рднреА рддреГрддреАрдп-рдкрдХреНрд╖ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ (рдкрд░рд┐рднрд╛рд╖рд┐рдд, рдореИрдХреНрд░реЛ) рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдЖрдИрдбреАрдИ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд╕рд╛рде рд╣реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рднреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛрдб рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреНред рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВред
- рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рддреНрд╡рд░рд┐рдд рдФрд░ рдЖрд╕рд╛рди рдЙрдкрдпреЛрдЧ рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рд┐рдПред
- рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ: рдирд╛рдордХрд░рдг, рдЖрджрд┐ред
- рдмрд╛рдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдврд╛рдВрдЪрд╛, рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ред рдЧреЗрдЯрд░реНрд╕ / рд╕реЗрдЯрд░ рдХреА рдкреАрдврд╝реА, рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ, рдЖрднрд╛рд╕реА рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдирд╛, рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдЖрднрд╛рд╕реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреИрдЯрд░реНрди (рдЗрдВрдЯрд░рдлреЗрд╕), рдЖрджрд┐ред
- рдХреЛрдб рдкреНрд░рд▓реЗрдЦрди рдЯреИрдЧ рдЬреИрд╕реЗ Doxygen рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдФрд░ рд╕рдорд░реНрдердиред
рдЗрди "рд╡рд┐рд╢рд▓рд┐рд╕реНрдЯ" рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдореИрдВрдиреЗ рдХрдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдФрд░ рдЪрд┐рддреНрд░рдордп рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдореАрдХреНрд╖рд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдЖрдХрд▓рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдмрдирд╛рдУ -
[рдкреБрд░рд╛рддрдирддрд╛] рдПрдХ рдорд╛рд╕реНрдЯреЛрдбрди рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рдпреЛрдЧреНрдп-рдпреЛрдЧреНрдп рд╡рдпреЛрд╡реГрджреНрдз, рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рдЕрднреА рднреА рд░рд┐рдЯрд╛рдпрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЙрдкрдХрд░рдг рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рдЯреИрдм рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рддреБрд░рдВрдд рдореМрдХреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдзрдордХреА рджреА рдЬрд╛рддреА рд╣реИред рдореЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕реЗ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдмрд┐рд▓реНрдб рд╕реЗ рд▓реЙрдЬрд┐рдХ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рднреА рдорд╣рдВрдЧрд╛ рд╣реЛрдЧрд╛ред рдХреБрдЫ рдЖрдзреБрдирд┐рдХ рдореЗрдХрдЕрдк рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдВрдЬрд╛ рдФрд░ рдЬрд╛рдо, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рд╛рд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ - рдпреЗ рдмрд╣реБрдд рд╣реА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЙрдкрдХрд░рдг рд╣реИрдВред рдХреЛрдбрд╛рдВрддрд░рдХ рдХреА рддрд░рд╣, рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдЫ рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ?
CMake -
[рдордзреНрдп рдпреБрдЧ] рдореЗрдХ рдХреЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд┐рд╡рд░рдг рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ред рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рджреВрд░ рддрдХ рдЬрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ - рдпрд╣рд╛рдВ рдЗрдВрдЬрди рд╡рд╣реА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реАрдПрдордХреЗ рдПрдХ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдмрд┐рд▓реНрдб рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╡рд┐рд╢рд╛рд▓ рдореЗрдХ-рдлрд╛рдЗрд▓реНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред Qmake рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореБрдЭреЗ рдПрдХ рдкреБрд░рд╛рдиреЗ рд▓рдХрдбрд╝реА рдХреЗ рдШрд░ рдХреЗ рд╕реБрдВрджрд░ рдореБрдЦреМрдЯреЗ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдзреНрдпрд╛рди рд╕реЗ рддрд╛рдЬрд╛ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред CMake рдПрдХ рд╕реНрдерд┐рд░ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд┐рджреНрдз рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧреНрд░рд╣рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрдХреАрдХрд░рдг рднреА рд╣реИ, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдореБрдЭреЗ рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд, рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ MSVC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдФрд░ рдореИрдВ MinGW рдХреЗ рдореВрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реВрдВ, NMake рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреАред рдпрд╛рдиреА рдПрдХ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рджреВрд╕рд░реЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдбред рдФрд░ рдпрд╣ рд╕рдм рдПрдХ рдмрд┐рдЯ рдХреБрдЯрд┐рд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЬрдм рдХрд╛рдо рдХрд╛ рдереЛрдХ рдЕрдиреНрдп "рд╕рд╣рд╛рдпрдХреЛрдВ" рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЪреАрдВрдЯреА -
[рдкреБрд░реНрдирдЬрд╛рдЧрд░рдг] рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП
рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрдирд╛ рдХреНрд▓реЛрдиред рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдореИрдВрдиреЗ рдЪреАрдВрдЯреА (рд╕рд╛рде рд╣реА рд╕рд╛рде рдорд╛рд╡реЗрди) рдХреЛ C ++ рдХреА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рдмрд┐рддрд╛рдпрд╛ред рдФрд░ рдореБрдЭреЗ рддреБрд░рдВрдд рдпрд╣ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╕реА ++ рдХрд╛ рд╕рдорд░реНрдерди рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рд╢реЛ рдХреЗ рд▓рд┐рдП" рд╣реИ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЪреАрдВрдЯреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ (рд╕рд╛рде рд╣реА рд╕рд╛рде рдорд╛рд╡реЗрди рдХреЗ рд▓рд┐рдП) XML рдХреЛ рдпрд╣рд╛рдБ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ - рдпрд╣ рд╡рд┐рд▓реЗ рдкрдХреНрд╖реА рднрд╛рд╖рд╛ :)ред рдЖрд╢рд╛рд╡рд╛рдж рдХреЗ рдЗрд╕ рддрдереНрдп рдиреЗ рдореБрдЭреЗ рд╡рд┐рд╖рдп рдореЗрдВ рдЖрдЧреЗ рд╡рд┐рд╕рд░реНрдЬрди рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ред
SCons рдПрдХ
[рдирдпрд╛ рдпреБрдЧ] рд╕реНрд╡-рдирд┐рд╣рд┐рдд, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬрд┐рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред SCons рдЬрд╛рд╡рд╛ рдФрд░ C ++ рдмрд┐рд▓реНрдб рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд░рддрд╛ рд╣реИред рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдмрд┐рд▓реНрдб рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ MSVC рдПрдХ рдЯреИрдореНрдмреЛрд░рд┐рди рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдкрд╛рдпрдерди рд╣реИред рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рднреНрдп рдкреНрд░рдгрд╛рд▓реА, рдФрд░ рдореИрдВ рднреА рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рд╢реЛрдз рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкреВрд░реНрдгрддрд╛ рдХреА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдкрд░реАрдХреНрд╖рд╛ рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдХреБрдЫ рдиреБрдХрд╕рд╛рди рд╕рд╛рдордиреЗ рдЖрдП рд╣реИрдВред
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд╛рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯреВрд▓рдЪрд┐рди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рдкрдбрд╝ рд╕рдХрддреА рд╣реИред рдПрдХ рд╣реА рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ - рдЕрдЧрд░ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рд╣реИ рддреЛ рдЗрд╕реЗ рдХрд░реЗрдВ, рдЕрдЧрд░ рдпрд╣ рдЬреАрд╕реАрд╕реА рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред
рджреВрд░рд╕реНрде рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдФрд░ рдПрдХ рдкрд░ рджреВрд╕рд░реЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рддрдерд╛рдХрдерд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдмрд┐рд▓реНрдбрд░реНрд╕ рд▓рдЧрднрдЧ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдВ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд▓рдЧ-рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдб рд▓реЙрдЬрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдпрд╣ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреЛрдЧреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИред
рдЧреНрд░реИрдбрд▓ [рд╡рд░реНрддрдорд╛рди] - рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛ рдФрд░ рдХреЛрдЯрд▓рд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЧреНрд░реИрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЕрдиреБрднрд╡ рдерд╛ рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдЙрдореНрдореАрджреЗрдВ рдереАрдВред
рдЬреЗрд╡реАрдПрдо рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЧреНрд░реИрдбрд▓ рдХреЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ (рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдПрдВ):
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдкрддреЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреА рд╣реИ: рдорд╛рд╡реЗрди рдпрд╛ рдЖрдЗрд╡реА - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ / рдкреНрд░рд╛рд░реВрдк рдХрд╛ рднрдВрдбрд╛рд░ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрджрд┐ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд▓рдЧрдЗрди рдерд╛ред рдпрд╣ рд░рд┐рдореЛрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреБрдЫ рдорд╛рд╡реЗрди рд╕реЗрдВрдЯреНрд░рд▓ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрдкрдХреА рдирд┐рдЬреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдпрд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЦрдВрдб рдореЗрдВ, рднрд╡рди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реАрдзреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдЗрдирд░реА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреАред
- рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ, рдЧреНрд░реИрдбрд▓ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИред рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдХреИрд╢ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ C ++ рдХреЗ рд▓рд┐рдП, рд╢рд╛рдпрдж рдЙрдиреНрд╣реЛрдВрдиреЗ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ C ++ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП "рдкреБрд░рд╛рдирд╛" рдкреНрд▓рдЧрдЗрди рдХреА рдЬрд╛рдБрдЪ рдХреА - `cpp` - рдФрд░ рдирд┐рд░рд╛рд╢ рдерд╛ - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд░рдЪрдирд╛ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ: рдореЙрдбрд▓, рдШрдЯрдХ, рдореВрд▓ рдирд┐рд╡рд╛рд╕реА - рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рд╕реЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд┐рд╢реНрдо рджреЛрдиреЛрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рднреА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдПред рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдмрд╣реБрдд рднрд┐рдиреНрди рдереАред
рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ C ++ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП "рдирдП" рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ: `cpp-application` - рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП` cpp-рдкреБрд╕реНрддрдХрд╛рд▓рдп`: рд╕реНрдерд┐рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓, рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП `cpp-unit-test`ред рдФрд░ рдпрд╣реА рдореИрдВ рдвреВрдВрдв рд░рд╣рд╛ рдерд╛! :)
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ:
- src / main / cpp - рдореБрдЦреНрдп * .cpp рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ред
- src / main / рд╣реЗрдбрд░ - рдЖрдВрддрд░рд┐рдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ред
- src / main / public - рдПрдХреНрд╕рдкреЛрд░реНрдЯреЗрдб рд╣реЗрдбрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдлреЛрд▓реНрдбрд░ - рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдПред
- src / test / cpp - рдЯреЗрд╕реНрдЯ рдпреВрдирд┐рдЯ рдХреА * .cpp рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ред
рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдХрдареЛрд░ рдирд╣реАрдВ рд╣реИ - рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИред
рд╡реИрд╕реЗ, рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдорддреМрд░ рдкрд░
build.gradle рд╣реИ , рдпрд╣
рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП Groovy рдпрд╛
Kotlin рднрд╛рд╖рд╛ (
build.gradle.kts ) рдХрд╛ DSL рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░, рдЧреНрд░реЗрдб рдПрдкреАрдЖрдИ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдПрдкреАрдЖрдИ рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реНрдерд┐рд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓ (рдпрд╛ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ)ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рджреЛ рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдбреАрдмрдЧ (
рдЧреНрд░реЗрдб рдЕрд╕реЗрдВрдмрд▓ ) рдФрд░ рд░рд┐рд▓реАрдЬрд╝ (
рдЧреНрд░реЗрдб рдЕрд╕реЗрдВрдмрд▓ )ред
рд░рдирд┐рдВрдЧ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реИ: рдЧреНрд░реЗрдбрд▓ рдЯреЗрд╕реНрдЯ рдореБрдЦреНрдп рдШрдЯрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛, рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг, рдпрджрд┐ рд╡реЗ
src / test / cpp рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЯреЗрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдПрдВред
рдХреБрдЦреНрдпрд╛рдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рдЕрдореВрд░реНрдд рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЧреНрд░реИрдбрд▓ рд╕реНрд╡рдпрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдк рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдХрдИ рдФрд░ рдЕрдореВрд░реНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдЬреИрд╕реЗ рдЕрдиреБрдХреВрд▓рди, рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА, рдЖрджрд┐ред
рдмреЙрдХреНрд╕ рдореЗрдВ рд╕реЗ, GCC, Microsoft Visual C ++, CLang рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
рдкреНрд▓рдЧ-рдЗрди рд╕рд┐рд╕реНрдЯрдо рдмрд╣реБрдд рд╡рд┐рдХрд╕рд┐рдд рд╣реИ, рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдЖрдк рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рддрд░реНрдХ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рдЬрд╛рдиреЗ / рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ: рдЧрддрд┐рд╢реАрд▓, рдЬреЛ рд╕реАрдзреЗ рдЧреНрд░реВрд╡реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИрдВ рдпрд╛ рдЬрд╛рд╡рд╛ (рдпрд╛ рдЬреЗрд╡реАрдПрдо рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ) рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдмрд╛рдЗрдирд░реА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВред рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП, рдПрдХ рдлреНрд░реА рдЧреНрд░реИрдбрд▓ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рднреА рдЕрдкрдирд╛ рдкреНрд▓рдЧрдЗрди рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдЬреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ :) рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред
рдореИрдВ рд╕реА + + рдХреЗ рд▓рд┐рдП рдЧреНрд░реИрдбрд▓ рдореЗрдВ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛: рдпрд╣ рд▓рдЧрднрдЧ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЬреИрд╕рд╛ рд╣реИ! рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордЧреНрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ:
- рдмрд░реНрддрди - рдкреБрд╕реНрддрдХрд╛рд▓рдп рдлрд╝реЛрд▓реНрдбрд░
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
- settings.gradle - рдХрдореНрдкреЛрдЬрд┐рдЯ рдмрд┐рд▓реНрдб рдореЗрдВ рдЗрди рджреЛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЧреНрд░реИрдбрд▓ рдлрд╝рд╛рдЗрд▓ред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ
рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдирд┐рдореНрди рдирд┐рд░реНрднрд░рддрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
dependencies { implementation project(':utils') }
рдмрд╛рдХреА рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдЧреНрд░реИрдбрд▓! рдмрд░реНрддрди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрде рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд┐рдирд░ рдХреЛ рд▓рд┐рдВрдХ рдХрд░реЗрдВред
рдФрд░ рдпрд╣ рд╕рдм рд▓рд┐рдирдХреНрд╕ рдЬреАрд╕реАрд╕реА рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдПрдордПрд╕рд╡реАрд╕реА рдХреЗ рддрд╣рдд рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрд▓ рдмрд┐рд▓реНрдб, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд╣реЗрдбрд░ рдХреЛ рдмрд░реНрддрдиреЛрдВ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдРрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛, рдЧреНрд░реИрдбрд▓ рдЖрдЧреЗ рдмрдврд╝реЗ рдФрд░ рдорд╛рд╡реЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕реА ++ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ `maven-publish` рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдБ рдЖрдк рдЕрдкрдиреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░реЗрдбрд▓ рдкрдмреНрд▓рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП gradToMavenLocal рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ)ред рдЧреНрд░реИрдбрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдиреАрдЪреЗ рд▓рд╛рдПрдЧрд╛ рдФрд░
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рдЦрдирд╛ - рд╕рдВрд╕реНрдХрд░рдг, рдордВрдЪ, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдХрд▓реНрдк рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ред
рдмрд╛рдЗрдирд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреБрдж рдХреЛ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд╛рдЗрд▓ рдХрд░рддреА рд╣реИ -
src / main / public рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдк C ++ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдорд╛рд╡реЗрди рд╕реЗрдВрдЯрд▓ рдкрд░ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╕рд┐рд╕реНрдЯрдо рдЪреЗрдХ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдореИрд╡реЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдмрдврд╝рд╛рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд┐рд░реНрдл рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИред
рдЕрдм рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд┐рд╕реА рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
repositories { maven { url = 'https://akornilov.bitbucket.io/maven' } } unitTest { dependencies { implementation 'org.bitbucket.akornilov.tools:gtest:1.8.1' } }
рдпрд╣ рдпрд╣рд╛рдВ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ
рдорд╛рд╡реЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ gtest рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг 1.8.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рд╣реИ ред
рд╡реИрд╕реЗ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЗрд░рд╛ рдЯреЗрд╕реНрдЯ рдмрд┐рд▓реНрдб Google рдЯреЗрд╕реНрдЯ v1.8.1 рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ x86_64 рдХреЗ рд▓рд┐рдП рдЧреНрд░реИрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЧреНрд░реИрдбрд▓ рдХреЗ рдмрд╛рд╣рд░реА рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдкрд░ рд╕рднреА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдп рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рднрдВрдбрд╛рд░ рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЗрд░рд╛рджреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЖрдИрдбреАрдИ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЧреНрд░реИрдбрд▓ рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд▓рд┐рдП рджреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВред рд╡реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд▓рдЧрдЗрди
src / test / cpp рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЛрдб рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред
рдЕрдм рдпрд╣ рдЖрдИрдбреАрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧреНрд░реЗрдбрд▓ рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ
рдЧреНрд░рд╣рдг CDT (2018-12R) рдПрдХ рдкрд░рд┐рдкрдХреНрд╡ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛рдкреВрд░реНрдг рдЙрддреНрдкрд╛рдж рд╣реИред рдпрджрд┐ рд╡рд╣ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рддреЛ рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ - рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╡рд╣ рдСрдЯреЛ рдХреЗ рд╕рдмрд╕реЗ рднреНрд░рдорд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ "рд╕рдордЭрдиреЗ" рднреА рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдирд╣реАрдВ ... рддреЛ рд╡рд╣ рдПрдХ рд▓рд╛рд▓ рдмрд┐рдВрджреАрджрд╛рд░ рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣рд┐рдВрд╕рдХ рд░реВрдк рд╕реЗ рдЬреЛрд░ рджреЗрдЧрд╛ рдФрд░ рдмреБрд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╢рдкрде рд▓реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рдирдХ MSVC рдФрд░ Windows SDK рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдЪрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рдкреНрд░рд┐рдВрдЯрдлрд╝ рдХреЛ рд▓рд╛рд▓ рдмрд┐рдВрджреАрджрд╛рд░ рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред Std :: string рднреА рдереАред рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд, рдЕрдкрдиреЗ рдореВрд▓ gcc рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рд╡рд╣ рдПрдХ рдмрд╣рди рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗрдЯрд┐рд╡ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛ рдЧрдИрдВред рдмрд╛рдпреЛрдирд┐рдХ рд╣реЗрдбрд░ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд┐рдВрджреБ-рд░рд┐рдХреНрдд size_t рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╢рд╛рдпрдж, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдЖрдк рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ Microsoft рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЙрд╕реЗ рдкрд░реНрдЪреА рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдЗрдЧрд╡рд┐рди рдпрд╛ рдорд┐рдирдЧрд╡ рдПрд╕рдбреАрдХреЗ, рд▓реЗрдХрд┐рди рдпреЗ рдЯреНрд░рд┐рдХ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╕реНрддрд░ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ "рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рджреВрдВрдЧрд╛", рдФрд░ рди рд╕рд┐рд░реНрдл рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рд╡рд╣ "рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ"ред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛрдб рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ, рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдФрд░ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЕрджреНрднреБрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╕рдордп рд╕рд╣рд╛рдпрдХ рд╕реЗ рд╕рд╡рд╛рд▓ рдкреВрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВ: рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдХрд┐рд╕реА рд▓рдВрдмреЗ рдирд╛рдо рд╕реЗ рдХреБрдЫ рдЕрдХреНрд╖рд░ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ? рдирд╣реАрдВ, рд╕рд╣рд╛рдпрдХ рдзреИрд░реНрдпрдкреВрд░реНрд╡рдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╛ -> рдпрд╛ ::ред рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ Ctrl + Space - рдХрд╖реНрдЯрдкреНрд░рдж рдкреНрд░реЗрд╕ рдХрд░рдирд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ, рдЗрд╕ рдХрд╖реНрдЯрдкреНрд░рдж рдХрдореА рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдбреАрдЯреА рдореЗрдВ рдкреВрд░реЗ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред

NetBeans 8.1 / 10.0 - рдореИрдВ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛, рдореБрдЭреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫреЗ рдФрд░ рд╣рд▓реНрдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред C ++ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд╕реАрдзреЗ NetBeans рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдореЗрдХ рдФрд░ gcc рдкрд░ рдХрд╛рдлреА рдХрдард┐рди рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдЗрддреНрдореАрдирд╛рди рд╕реЗ рд╣реИред рдореБрдЭреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдзрд╛рд░рдг рдЪреАрдЬ рдирд╣реАрдВ рдорд┐рд▓реА: рд╣рдо рдХреНрд▓рд╛рд╕ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рдЖрдкрдХреЛ рдПрдХ рд╕реАрдкреАрдкреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рдзрд┐ рдмреЙрдбреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреИрд╕реЗред рдХреЛрдб рдХреА "рд╕рдордЭ" рдХреА рдбрд┐рдЧреНрд░реА рдФрд╕рдд рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдкрд╛рд░реНрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдСрдЯреЛ-рдЗрдЯрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЪрд▓рдирд╛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд╡рд╣ Google рдЯреЗрд╕реНрдЯ рд╕реЗ рдореИрдХреНрд░реЛрдВ рдХреА рдХрд╕рдо рдЦрд╛рддрд╛ рд╣реИред рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ - рд▓рд┐рдирдХреНрд╕ рдкрд░ gcc рдХреЗ рд╕рд╛рде рдФрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдВ (рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдПрдХ рдФрд░ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ) рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЗрд╕реЗ рдорд┐рдирдЧреЙрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдХрд░рддрд╛ рд╣реИ, рддреЛ рднреА рдЗрд╕реЗ рдмрдирд╛рдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реА ++ рдХреЗ рд╕рд╛рде рдиреЗрдЯрдмреАрдиреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕рд╣рдЬ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛; рдореБрдЭреЗ рд╢рд╛рдпрдж рдЗрд╕ рдорд╛рд╣реМрд▓ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдШрд╛рд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

KDevelop 5.3.1 - рдХрднреА рдХреЗрдбреАрдИ (рд▓рд┐рдирдХреНрд╕) рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХреА рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдЕрдм рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдЗрд╕рдореЗрдВ рд╕реБрдВрджрд░ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ (рдХреЗрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд) рдХреЗ рд╕рд╛рде рдПрдХ рддреЗрдЬ рдФрд░ рд╕реБрдЦрдж рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рд╣реИред рдпрд╣ рд╡рд╛рдо рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рдЙрд╕рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕реАрдПрдордХреЗ рд╣реИред рдпрд╣ MSVC рдФрд░ Windows SDK рд╣реЗрдбрд░ рдХреЗ рдкреНрд░рддрд┐ рд╕рд╣рд┐рд╖реНрдгреБ рд╣реИ, рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ printf рдФрд░ std :: string рдХрд┐рд╕реА Eclipse CDT рдХреА рддрд░рд╣ рдПрдХ рд╕реНрдЯреНрд░реИрдВрдбрд░ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓рд┐рдЦрдиреЗ рдХреЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рддреЗрдЬ рд╕рд╣рд╛рдпрдХ - рдпрд╣ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдкрди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛрдб рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рд╕рд░ рд╣реИ: рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдСрдирд▓рд╛рдЗрди рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рдкрд╕рдВрджреАрджрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдкрд░реЗрд╢рд╛рди рд╣реИ: рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рджреЛрдиреЛрдВ рдХреЗ рддрд╣рдд рдХреБрдЯрд┐рд▓ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рдХрдИ рд╡рд┐рдВрдбреЛ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдк рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдХрд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХреМрди рд╕реЗ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рджрд╕реНрдп рд╣реИрдВ рдЖрджрд┐ред рд▓реЗрдХрд┐рди рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдкреЙрдк рдЕрдк рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд╛рда рдЕрд╕рдВрднрд╡ рд╣реИ рдФрд░ 1 рдмрд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ h рдФрд░ cpp рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред рд▓рд┐рдирдХреНрд╕ рдореЗрдВ, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЯреИрдм рдЦрд╛рд▓реА рд╣реИ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдХреЗрд╡рд▓ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рдкрдХреНрд╡ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдмрдЪрдкрди рдХреА рдмреАрдорд╛рд░рд┐рдпрд╛рдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рддреБрдЪреНрдЫ рджрд┐рдЦрддреА рд╣реИрдВред

QtCreator 4.8.1 (рдУрдкрди рд╕реЛрд░реНрд╕ рдПрдбрд┐рд╢рди) - рд╢рд╛рдпрдж, рдЗрд╕ рдирд╛рдо рдХреЛ рд╕реБрдирдХрд░, рдЖрдк рд╣реИрд░рд╛рди рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдХреНрдпреВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХреЗ рд╕рд╛рде Qt рдХреЗ рддрд╣рдд рдЗрд╕ рд░рд╛рдХреНрд╖рд╕ рдХреЛ рдпрд╣рд╛рдБ рдХреИрд╕реЗ рдХреИрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдПрдХ "рд╣рд▓реНрдХрд╛" рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдЗрд╕рдХреА рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХрд╛ рд╡рдЬрди рд▓рдЧрднрдЧ 150 рдПрдордмреА рд╣реИ рдФрд░ рдпрд╣ Qt рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреАрдЬреЛрдВ рдХреЛ рдирд╣реАрдВ рд▓реЗрддреА рд╣реИ:
download.qt.io/official_releases/qtcreator/4.8 ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд▓реНрджреА рдФрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдирдХ рд╣реЗрдбрд░ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдмрддрд╛рддрд╛ рд╣реИ, рдЖрд╕рд╛рдиреА рд╕реЗ рдирдИ рдХрдХреНрд╖рд╛рдПрдВ, рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдФрд░ рдХреЛрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЗрд╕ рдпрд╛ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЖрд░рд╛рдо рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ QtCreator рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдХрд┐ рдЧреНрд░реИрдбрд▓ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдирд╣реАрдВ рдерд╛: рдЖрдИрдбреАрдИ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдгред рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрдЬреНрдЮрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦреА рдЬрд╛рдПрдЧреА, рд╕рднреА рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓реЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ, рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
рдЧреНрд░реИрдбрд▓ 'cpp-ide-рдЬрдирд░реЗрдЯрд░' рдХреЗ рд▓рд┐рдП рдПрдХ
рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрд╛ рдФрд░ рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрд┐рди рдкреЛрд░реНрдЯрд▓ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред
рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ 'cpp-application`, `cpp-Library` рдФрд░` cpp-unit-test` рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг
build.gradle рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
plugins { id 'cpp-library' id 'maven-publish' id 'cpp-unit-test' id 'org.bitbucket.akornilov.cpp-ide-generator' version '0.3' } library {
рдкреНрд▓рдЧрдЗрди рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд▓рдЧрдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмреНрд▓реЙрдХ - ide рдореЗрдВ, рдЖрдк рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
kdevelop = false
рдпрджрд┐
AutoGenerate рдкреИрд░рд╛рдореАрдЯрд░
рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдЕрдиреБрдордд IDEs рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрд╡рддрдГ рд╣реА рдЬреЗрдирд░реЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдЯреЛрдореИрдЯрд┐рдХ рдЬрдирд░реЗрд╢рди рдореЛрдб рдореЗрдВ, рдмрд┐рд▓реНрдб рд╕рд╛рдл рд╣реЛрдиреЗ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕ рдбрд┐рд▓реАрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреА:
рдЧреНрд░реЗрдбрд▓ рдХреНрд▓реАрди ред
рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкреАрдврд╝реА рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдХреЗрд╡рд▓ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдВ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬреЛ рдкреНрд▓рдЧрдЗрди рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
- GenerIde - рд╕рднреА рдЕрдиреБрдордд IDEs рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВред
- cleanIde - рд╕рднреА рдЕрдиреБрдордд рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
- GenerIde [рдирд╛рдо] - рджрд┐рдП рдЧрдП рдирд╛рдо (IDE рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП) рдХреЗ рд╕рд╛рде IDE рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП GenerIdeQtCreatorред
- рдЙрдкрд▓рдмреНрдз рдирд╛рдо: рдЧреНрд░рд╣рдг, NetBeans, QtCreator, KDevelopред
- cleanIde [рдирд╛рдо] - рджрд┐рдП рдЧрдП рдирд╛рдо рдХреЗ рд╕рд╛рде IDE рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП cleanIdeQtCreatorред
рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди, рдкреНрд▓рдЧрдЗрди "рд╕реВрдБрдШрддрд╛ рд╣реИ" рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЗрд╕рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рднреА рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓реЗрдВ рдЖрдИрдбреАрдИ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рд╕рднреА рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ / рдирд┐рд░реНрдорд╛рдг / рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреВрд╕рд░рд╛ рдкреНрд▓рдЧрдЗрди рдЬреЛ рдореБрдЭреЗ рдХрд░рдирд╛ рдерд╛ рдЙрд╕реЗ
`cpp-build-tuner` рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ cpp-application`,` cpp-Library` рдФрд░ `cpp-unit-test` рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкреНрд▓рдЧрдЗрди рдХреА рдХреЛрдИ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
plugins { id 'cpp-library' id 'maven-publish' id 'cpp-unit-test' id 'org.bitbucket.akornilov.cpp-build-tuner' version '0.5' }
рдкреНрд▓рдЧрдЗрди рд╡рд┐рднрд┐рдиреНрди рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреВрд▓рдЪрд┐рдиреНрд╕ (рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░) рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЫреЛрдЯреЗ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░рддрд╛ рд╣реИ - рдбрд┐рдмрдЧ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ред MSVC, gcc, CLang рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
рдпрд╣ MSVC рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЛ "рдмреЛрд▓реНрдб" рдорд┐рд▓реЗрдЧрд╛, рди рдХрд┐ рдмреЗрдЬрд╝рд╛рдбрд╛рд╢ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕реМрдВрджрд░реНрдпрдкреВрд░реНрдг рдмрд┐рдирд░ рдФрд░ рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдореИрдВ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╣реА MSVC рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ "рдЬрд╛рд╕реВрд╕реА" рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред Gcc / CLang рдФрд░ MSVC рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдХ рд╕рдордп рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдиреЛрдЯ: рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдЧреНрд░реЗрдбрд▓ v5.2.1 рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛редрдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб, рд╕рд╛рде рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреНрд░реИрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг: рд╕реНрдерд┐рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓, рд╕рд╛рде рд╣реА рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
bitbucket.org/akornilov/tools рдЕрдЧрд▓рд╛ рдЧреНрд░реЗрдб / рд╕реАрдкреАрдкреАред
рдЙрджрд╛рд╣рд░рдг рдпрд╣ рднреА рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП Google рдЯреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдЧреВрдЧрд▓ рдЯреЗрд╕реНрдЯ v1.8.1 рдХреЗ рд╕рд╛рде рдорд╛рд╡реЗрди рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдЬреЛ рдЧреНрд░реИрдбрд▓ (рдореЙрдХ рдХреЗ рдмрд┐рдирд╛) рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИредрдпреБрдкреАрдбреА:QtCreato рдХреЗ Windows рд╕рдВрд╕реНрдХрд░рдг
4.6.2 рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ (рдФрд░ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдХрдо рд╕реЗ рдХрдо,
4.10 рд╕рдорд╛рд╡реЗрд╢реА рддрдХ) MSVC SDK рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП "рдХреИрд╕реЗ рднреВрд▓ рдЧрдП"ред рдПрд╕рдЯреАрдбреА рдХреЗ рд╕рднреА рд╕реНрдерд╛рди :: рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдлрд┐рд▓рд╣рд╛рд▓, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг 4.6.2 рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред
cpp-build-tuner
v1.0 рдкреНрд▓рдЧрдЗрди рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░
cpp-ide-generator
v0.5 рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ рд╣реИ)ред
1)
cpp-build-tuner
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
buildTuner { lto = false gtest = '1.8.1' libraries { common = ['cutils.lib'] windows = ['ole32', 'user32'] linux = ['pthread', 'z'] } libDirs.common = ['../build/debug', '../release'] }
lto (рдмреВрд▓рд┐рдпрди) - рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП LTO рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдоред
gtest (string) - рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП Google рдЯреЗрд╕реНрдЯ рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг 1.8.1 рд╣реА GCC, MinGW-W64 рдФрд░ MSVC рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдХрдВрдЯреЗрдирд░) - рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреАред рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рддреАрди рдлрд╝реАрд▓реНрдб рд╣реИрдВ (рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕реВрдЪреА): рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП
common
- рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдФрд░
linux
- рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдПред
libDirs (рдХрдВрдЯреЗрдирд░) - рдПрдХ рд▓рд┐рдВрдХрд░ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреА рдПрдХ рд╕реВрдЪреАред рдХрдВрдЯреЗрдирд░ рд╕рдВрд░рдЪрдирд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реВрдЪреА рдХреЗ рд╕рдорд╛рди рд╣реИред
2)
cpp-application
рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдкреНрд▓рдЧрдЗрди рдЗрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
run
,
runDebug
(
run
рдХреЗ рд╕рдорд╛рди) рдФрд░
runRelease
ред рдЯрд╛рд╕реНрдХ рдХреНрд░рдорд╢рдГ
assembleDebug
assemble
,
assembleDebug
рдФрд░
assembleRelease
рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред
рдорд╛рдирдХ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд▓рдЧрдЗрди рдХреА рддрд░рд╣, рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
gradle run --args="arg1 arg2 ..."
ред
рдпреБрдкреАрдбреАрд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╕рдореВрд╣ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
plugins { id 'loggersoft.cpp-build-tuner' version '1.1' id 'loggersoft.cpp-ide-generator' version '0.5' }
рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрддрд╛:
gradle-cpp.sourceforge.ioрдкреНрд░рд▓реЗрдЦрди:
sourceforge.net/p/gradle-cpp/wiki/cpp-build-tunersourceforge.net/p/gradle-cpp/wiki/cpp-ide-generator