
рдиреЛрдЯ (06/17/2013): рд▓реЗрдЦ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдорд╛рд░реНрдЪ рдореЗрдВ,
рдХреНрдпреВрдмреАрдПрд╕ рдирд┐рд░реНрдорд╛рддрд╛ QBS рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде
2.7 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдХреНрдпреВрдЯреА рд╡рд┐рдХрд╛рд╕ рдЯреАрдо
рдиреЗ рдПрдХ рдирдИ рдмрд┐рд▓реНрдб рдкреНрд░рдгрд╛рд▓реА - рдХреНрдпреВрдмреАрдПрд╕ рд╢реБрд░реВ рдХреАред рдмреЗрд╢рдХ, рдореБрдЦреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╣ рдереА рдХрд┐ "рдЖрдк рдХреНрдпреВрдПрдордХреЗрдИ рдХреНрдпреЛрдВ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддреЗ?", "рдмрд╕ CMAKE рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ", "рдПрдХ рдФрд░ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо [xkcd, standard]"ред рдирдИ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рд▓рд╛рдн: рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛рдкрди, рд╕реНрдкрд╖реНрдЯ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ (рдХреНрдпреВрдПрдордПрд▓ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА рдШреЛрд╖рдгрд╛рддреНрдордХ рднрд╛рд╖рд╛ рд╣реИ), рдмрд┐рд▓реНрдб рдХреА рдЧрддрд┐ (рд╢реБрджреНрдз рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓), рд╕рд╛рде рд╣реА рдЖрд╕рд╛рди рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреАред
рд╣рдордиреЗ рдпрд╣ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╣реА рд╕реБрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХреИрд╕реЗ рдЖрдП, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдмреБрдирд┐рдпрд╛рджреА рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ IDE рд╕реНрддрд░ рдкрд░ рдХреНрдпрд╛ рд╕рдорд░реНрдерди рдореМрдЬреВрдж рд╣реИред
рдХрд╣рд╛рдиреА
рд╕рд╛рде рдореЗрдВ, рд╣рдо J├╢rg рдмреЛрд░реНрдирдореИрди, QBS рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред
рдмрдирд╛рдиреЗ рдХреА рдЖрд▓реЛрдЪрдирд╛ (рдФрд░ рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡)
рдкреАрдЯрд░ рдорд┐рд▓рд░ рдХрд╛ 1999 рдХрд╛ рд▓реЗрдЦ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореЗрдХ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
- UNIX рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА, UNIX рдХреЗ рд▓рд┐рдП рдкрд╛рд░рдВрдкрд░рд┐рдХ, рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдк рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреА рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП);
- рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдЯреВрдЯ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рджреЛ рдпрд╛ рддреАрди рдмрд╛рд░ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ (рдФрд░ рдмрд┐рд▓реНрдб рд╕рдордп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ);
- рдПрдХрд▓ рдореЗрдХрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЦрд╛рдорд┐рдпрд╛рдВ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдорд░реНрдерди рдЕрд╕рд╣рдиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд░реНрдерди рдХрд╛ рдХреЛрдИ рд╕рд╡рд╛рд▓ рд╣реА рдирд╣реАрдВ рд╣реИред
2005 рдХреЗ
рдПрдбреНрд░рд┐рдпрди рдирд┐рдПрдЧ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ:
- рдореЗрдХ рдХреА рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдмрд╣реБрдд рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдХ-рдЕрдк рд╕реНрд╡рдпрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рджрд░реНрдЬрдиреЛрдВ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдЬреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ, рдХреЛ рдореЗрдХрдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
- рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореЗрдХ (рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреА рддрд░рд╣ рд╣реА рд░рд╛рдп) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рднрдпрд╛рдирдХ рд╣реИ, рдФрд░ рд╢рд╛рдорд┐рд▓ рдпрд╛ рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рджрд░реНрд╢рди рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдЧрд┐рд░рддрд╛ рд╣реИред
"
рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ GNU рдореЗрдХ рдХреЗ рд╕рд╛рде " рд▓реЗрдЦ рдореЗрдВ
рднрд╛рд╖рд╛ рдХреЗ minuses рдФрд░ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдореИрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ рдирд╣реАрдВ)
- рднрд╛рд╖рд╛ рдХреЗ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рддрддреНрд╡ (рдЬреЛ рдХреЗрд╡рд▓ ifeq, ifneq, ifdef рдФрд░ iffef рд╣реИрдВ)
- рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░реЗрдВ (рдХреЗрд╡рд▓ рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ)
- рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдмрджрд▓рддреЗ рд╕рдордп рдЦрд░рд╛рдм рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓реНрдк
- рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЪрд▓рдиреЗ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реЛрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛
- рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдЪрд╛рдирдХ рд░реЛрдХрдХрд░ рдЕрд╕реЗрдВрдмрд▓реА рдЯреНрд░реА рдХреЛ "рдорд╛рд░" рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
- рдФрд░ рдХрдИ рдЕрдиреНрдп рдЫреЛрдЯреЗ рдЬрд╛рдо рд╣реИрдВ рдЬреЛ рдЖрдзреБрдирд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ (рд▓реЗрдЦрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
рдЗрдпрд╛рди рд▓рд╛рдВрд╕ рдЯреЗрд▓рд░ , 2007 рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ, рдореЗрдХ рд╣реА рд╣реИ рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ Cmake рдХрд╛ рдореБрдЦреНрдп рджреЛрд╖ рд╣реИред рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ред рдореБрдбрд╝рд╛ рд╣реБрдЖред рдпрд╣ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдирд╛рд░рдХреАрдп рдорд┐рд╢реНрд░рдг рд╣реИ, рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЧреБрд░реБ рд╣реА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрдЯрд┐рд▓ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП) (рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рднреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ)ред рдПрдХ рдФрд░ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рд▓рдЪреАрд▓реЗрдкрди (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓рдЪреАрд▓реЗрдкрди) рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрддреНрдкрдиреНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рд╛рде рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
QMake рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ?
Qt рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ, Qmake рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЖрдЬ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдЕрднреА рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред "рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдПрдХ" рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереА?
рдорд╛рд░рд┐рдпрд╕ рд╕реНрдЯреЙрд░реНрдо-рдСрд▓рд╕реЗрди рд▓реЗрдЦ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрдпреВрдореЗрдХ рджреЛрд╖реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ:
- рд╕реНрд╡рдпрдВ, рдореВрд▓ рднрд╛рд╖рд╛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ред
QTDIR / mkspecs / features / рдЕрдирдиреНрдп_builds.prf рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
DEFINES += QT_NO_CAST_TO_ASCII !macx:DEFINES += QT_USE_FAST_OPERATOR_PLUS QT_USE_FAST_CONCATENATION unix { CONFIG(debug, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared CONFIG(release, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared CONFIG(debug, debug|release):MOC_DIR = $${OUT_PWD}/.moc/debug-shared CONFIG(release, debug|release):MOC_DIR = $${OUT_PWD}/.moc/release-shared RCC_DIR = $${OUT_PWD}/.rcc UI_DIR = $${OUT_PWD}/.uic }
рдЗрд╕реЗ рддреБрд░рдВрдд рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, "рдЖрдзрд╛ рд▓реАрдЯрд░" рднреА рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реАрдПрдордХреЗ рдЕрднреА рднреА рдЗрд╕рд╕реЗ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░ рд╕рдХрддреА рд╣реИред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ C ++, рдкрд╛рд╕реНрдХрд▓, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЬреАрдд рдФрд░ рдпреВрдирд┐рдХреНрд╕ рд╢реЗрд▓ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдмрддрд╛рдПрдВ - рдпрд╣ рд╕рдм рдЬреНрдЮрд╛рди рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рд╣рд┐рд░ рдХрд░рдиреЗ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рдореИрдВ рдЙрд╕ "#" рдЪрд░рд┐рддреНрд░ рдХреЛ рдкрдереЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ $ $ LITERAL_HASH рдХреЗ рд╕рд╛рде рдЙрдкрджреНрд░рд╡ рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рд╣реБрдИ (рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рд╕реЛрдЪрд╛? рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдкреЗрд╢ рдХрд░реЗрдВ)ред
- рдЖрдИрдбреАрдИ рд╕рдорд░реНрдердиред
Qt рдирд┐рд░реНрдорд╛рддрд╛ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ "рд╕рд╛рдорд╛рдиреНрдп" рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рдереЛрдбрд╝рд╛ рджреВрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирдпрд╛ HEADERS рдпрд╛ FILES рдирд┐рд░реНрдорд╛рдг рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
- Qmake рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рддрд┐ рд╕реИрдХреЗрдВрдб рдХреА рдХрдореАред
Qmake рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдирд╛рдо рднреНрд░рд╛рдордХ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдореЗрдХрдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдХ рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ (* nix - gnu make, win-nmake, jom рдпрд╛ mingw-make) рдореЗрдВ рд╕реЗ рдПрдХ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред - рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рди, рдкреИрдХреЗрдЬ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд╕рдорд░реНрдерди рдХрд╛ рдЕрднрд╛рд╡ред
рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ
рдирдИ рдмрд┐рд▓реНрдб рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ
рдкрд░ рдХреНрдпреВрдЯреА рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ
рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА:
- рдпрд╣ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдЯреЗрдЯ) () рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрдЧрдд рд╕рдордп;
рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдХрд╣реАрдВ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдиреЛрдб рдмрджрд▓рдиреЗ рд╕реЗ рдкреВрд░реЗ рдкреЗрдбрд╝ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; - рдЗрд╕рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░реЛрд╕реА рдЬрд╛ рд╕рдХрддреА рд╣реИ;
рднрд╛рд╖рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП;
рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЫреЛрдЯреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде, рдмрд╛рдХреА рд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рдкреГрдердХ;
рднрд╛рд╖рд╛ рдЧреБрдгреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЖрдЬреНрдЮрд╛рдУрдВ рдкрд░ рдирд╣реАрдВред рдХреЛрдИ CFLAGS рдирд╣реАрдВред (рдЗрд╕реЗ рдЖрдзрд╛ рд╕реЗрдореА рдХрд░реЗрдВ); - рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рднреА рдЙрдкрдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ)ред рдпрд╣реА рд╣реИ, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓рддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рд▓рд┐рдпрд╛, рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдбрд╛рд▓рд╛ - рд╡рд╣рд╛рдВ рднреА рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛);
- рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╕рдорд░реНрдерди;
- рдПрдХ рдкрд╛рд╕ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓рд╛рдЗрдлрдмреЙрдп рдХрд╛ рдкрд░рд┐рдЪрдп - рдХреНрдпреВрдЯреА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо
15 рдлрд░рд╡рд░реА, 2012 рдХреЛ, рдЬреЛрд░реНрдЧ рдмреЛрд░реНрдирдореИрди рдиреЗ QBS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ Qt рд▓реИрдм рдореЗрдВ рдЬрдирддрд╛ рдХреЗ рд╕рд╛рдордиреЗ рдкреЗрд╢ рдХрд┐рдпрд╛ред рдЕрдм рд╡рд╣ рдЕрд▓реНрдлрд╛ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╣реАрдВ рдмреАрдЪ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдФрд░ рдЕрд▓реНрдлрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмреАрдЪ рд╣реИред рдФрдЪрд┐рддреНрдп рдореЗрдВ, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреВрдЯреА рдирд┐рд░реНрдорд╛рддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдирдИ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд:
- рдШреЛрд╖рдгрд╛ - рдХреНрдпреВрдПрдордПрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ;
- рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА - рдЕрд╕реЗрдВрдмрд▓реА, рдпрд╛ рдХреЛрдб рдЬрдирд░реЗрдЯрд░, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдиреАрдЪреЗ рд╣рдо рдбреЗрд▓реНрдлреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ);
- рдЧрддрд┐;
- рдбрд╛рдпрд░реЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА qmake рдирд╣реАрдВ рд╣реИ, рдпрд╣ "рдордзреНрдпрд╕реНрде" рдирд╣реАрдВ рд╣реИред Qbs рдЦреБрдж рдХрдВрдкрд╛рдЗрд▓рд░, рд▓рд┐рдВрдХрд░, рдФрд░ рдФрд░ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЕрднреА рддрдХ рд╡рд╣рд╛рдБ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИ: рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ (рдЯреВрд▓рдХрд┐рдиреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдореЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛, рддреИрдирд╛рддреА рдХрд░рдирд╛, рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд - рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛, рдПрдХ рд╡рд┐рд╢реЗрд╖ QtCreator рд╢рд╛рдЦрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред
рдЪрд▓реЛ рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!
рд▓реЗрдЦрдХ
рд╕реНрд░реЛрдд рд╕реЗ рдХреНрдпреВрдмреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдпрд╣ рдзреНрдпрд╛рди рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬреАрдд рдФрд░ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП
рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рд╣реИрдВрдЬреАрдд - MSVC2010 рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдореИрдВ рдЧрд┐рдЯ рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ (рдореБрдЭреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдПрдордУрд╕реА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдереА)ред
рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд░реВрдк рдореЗрдВ, рдХреНрдпреВрдЯреА QtCore рдФрд░ QtScript рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (+ Qt5 рдХреЗ рд▓рд┐рдП рд╕рдорд╡рд░реНрддреА)
рдЖрдЗрдП C ++ рдореЗрдВ рдПрдХ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:
main.cpp #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; }
рд╣рдо рдПрдХ рдиреНрдпреВрдирддрдо qbs рдкрд░рд┐рдпреЛрдЬрдирд╛ рднреА рдмрдирд╛рддреЗ рд╣реИрдВ:
hello.qbp import qbs.base 1.0 CppApplication { name: "HelloWorld" files: "main.cpp" }
рд▓рд┐рдирдХреНрд╕:
1. рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╢реЗрд▓ рдЦреЛрд▓реЗрдВред
2. рдЙрд╕ рдкрде рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдкреИрда (рдпрд╛ рдмрд▓реНрдХрд┐, рдмрд┐рди рдлрд╝реЛрд▓реНрдбрд░) рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдмреНрд╕ рдЕрдирдкреИрдХ / рдПрдХрддреНрд░ рдХрд┐рдП рд╣реИрдВ
рдкрде = ~ / qbs / рдмрд┐рди /: $ рдкрде
3. рдХреНрдпреВрдмреНрд╕ рд▓реЙрдиреНрдЪ:
QBS Found project file /home/mapron//example-3/hello.qbp loading project took: 69 ms build graph took: 18 ms for debug: - [hpp, application] HelloWorld as debug compiling main.cpp linking HelloWorld Build done.
рдЙрд╕рдХреЗ рдмрд╛рдж, рдмрд┐рд▓реНрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ рдФрд░ рдирд┐рд░реНрдорд╛рдг / рдбрд┐рдмрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛ (рдареАрдХ рд╣реИ, рдХреНрдпрд╛ рд╣рдордиреЗ рдЕрднреА рддрдХ рдЧрдВрддрд╡реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ?)
WINDOWS:
4. рдЪреВрдВрдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдХреНрдпреВрдЯреА рдкреИрдЯ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреВрдмреНрд╕ рдЖрдкрдХреЛ "
рдХреНрдпреВрдмреНрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬрд╛рдВрдЪ " рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
5. рдЙрд╕рдХреЗ рдмрд╛рдж
qbs config рдЕрджреНрдпрддрди рдпрд╛ рдЬреИрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рдпрд╣ рдкреВрдЫрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
6. рдЙрд╕рдХреЗ рдмрд╛рдж, рдЬрдм
Qbs [рдмрд┐рд▓реНрдб] рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рдмрд╛рдЗрдирд░реА рдорд┐рд▓реЗрдЧреА "HelloWorld.exe"
рд╣рдо рдкрдврд╝рд╛рдИ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ
рдЕрдм рдЪрд▓реЛ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдорд╛рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рднрд╛рд╖рд╛ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдФрд░ Qt рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ "
2dpainting " рдФрд░ "
collidingmice " рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред
рдПрдХ рдмрд╛рд░ рдореЗрдВ рджреЛ рдХреНрдпреЛрдВ? рд╣рдо рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рджреЛ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗред
рдЙрддреНрдкрд╛рдж Qmake рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп ".pro" рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд▓рдХреНрд╖реНрдп "рдирд┐рдХрд╛рд╕" рд╣реИред рдПрдХ qbs рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдЙрддреНрдкрд╛рдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, "
example.qbp " рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рддреНрд░реБрдЯрд┐ "рддреНрд░реБрдЯрд┐: рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐: qt.core.incPath рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред рдЕрдкрдиреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ qt.core.incPath рдпрд╛ qt.core.path рд╕реЗрдЯ рдХрд░реЗрдВред "
рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рддрд░реАрдХреЗ рд╕реЗ рдЕрдкрдиреА рдЖрдБрдЦреЗрдВ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА (WINDOWS) рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ "
qbs.config " рдмрдирд╛рдПрдБ:
modules.qbs.platform: MSVC2010 profile: default profiles.default.qt.core.path: C:/QtSDK/Desktop/Qt/4.8.1/msvc2010/
рдпрд╛ рддреЛ LINUX (ubuntu) рдХреЗ рддрд╣рдд:
modules.qbs.platform: gcc profile: default profiles.default.qt.core.binPath: /usr/bin/ profiles.default.qt.core.libPath: /usr/lib/qt4 profiles.default.qt.core.incPath: /usr/include/qt4 profiles.default.qt.core.mkspecsPath: /usr/share/qt4/mkspecs
рдФрд░
qbs config --import qbs.config
рдЙрд╕рдХреЗ рдмрд╛рдж, qbs рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд┐рд▓реНрдб / рдбреАрдмрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред
рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
рдХреНрдпреВрдмреНрд╕ рдмрд┐рд▓реНрдб рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВ ред
рд╕рднреА рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЕрд░реНрдерд╛рдд, рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ),
qbs рдХреЛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ ред
рдЕрдм рджреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред "
2dpainting " рдФрд░ "
collidingmice " рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ, рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдирд╛рдо рдлрд╛рдЗрд▓реЛрдВ рдХреЛ ".qbs" рдмрдирд╛рдПрдВ:
import qbs.base 1.0 Product { name: "2dpainting" type: "application" Depends { name: "cpp" } Depends { name: "Qt"; submodules: ["core", "gui", "opengl"] } files: [
import qbs.base 1.0 Product { name: "collidingmice" type: "application" Depends { name: "cpp" } Depends { name: "Qt"; submodules: ["core", "gui", "opengl"] } files: [ "mouse.h","main.cpp", "mouse.cpp" ,"mice.qrc"] }
рдпрд╛рдиреА рд╣рдо рд╕реНрд╡рддрдВрддреНрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ редqbp:
рдЖрдк рдлрд┐рд░ рд╕реЗ qbs рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ ".qrc" рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, "рдЖрд░рд╕реАрд╕реА" рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рд╕реВрдЪреА рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рд╣реЗрдбрд░реНрд╕, рд╕реНрд░реЛрдд рдЖрджрд┐ рдореЗрдВ рдЕрд▓рдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ qeake рдореЗрдВ рдерд╛ред
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВ
рдорджрдж рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ
рднрд╛рд╖рд╛ рдХреА рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ: рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЙрддреНрдкрд╛рдж, рдЙрддреНрдкрд╛рдж, рдХрд▓рд╛рдХрд╛рд░реА, рдореЙрдбреНрдпреВрд▓, рдирд┐рдпрдо, рд╕рдореВрд╣, рдирд┐рд░реНрднрд░рддрд╛, рдЯреИрдЧред
рдПрдХ рдЙрддреНрдкрд╛рдж рдкреНрд░реЛ рдпрд╛ vcproj рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдХреНрд╖реНрдпред
рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЖрдкрдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ - рдПрдХ рдирд┐рд░реНрдорд╛рдг рдЧреНрд░рд╛рдлред
рдЯреИрдЧ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрдЧреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "*ред Cpp" => "cpp"
рдирд┐рдпрдо - рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдирд╛рдордХ рдЕрдиреНрдп рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдпреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдЕрдиреНрдп рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╣реЛрддреЗ рд╣реИрдВред
рдПрдХ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ, рдЬреЛ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╣реИ (рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ)ред рдпреЗ рдЖрдорддреМрд░ рдкрд░ "obj", "exe" рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВред
рдХрдИ рдХреНрдпреВрдПрдордПрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдПрдХ рд╢рд░реНрдд рд╕рдВрдкрддреНрддрд┐ рд╣реЛрддреА рд╣реИ рдЬреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВред рдФрд░ рдЕрдЧрд░ рд╣рдореЗрдВ рдЙрд╕ рддрд░рд╣ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдореВрд╣ (рд╕рдореВрд╣) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
Group { condition: qbs.targetOS == "windows" files: [ "file1", ...] }
рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред
рдЖрдЧреЗ рдХреНрдпрд╛?
рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рд╢реНрди, рдЙрджрд╛рд╣рд░рдг рдорд╣рд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдореБрдлреНрдд рддреИрд░рд╛рдХреА рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВ;
- рдХреНрдпреВрдЯреА рдирд┐рд░реНрдорд╛рддрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпреВрдмреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рд╕реНрд╡рдпрдВ QBS рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЬрд╛рдиреЗрдВ (рдЖрдкрд╛рддрдХрд╛рд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ)ред
рдирд┐рд╖реНрдХрд░реНрд╖
QBS рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рд░реВрдк
- рдЙрдЪреНрдЪ рдЧрддрд┐
- рд╕реНрдкрд╖реНрдЯ рдореЙрдбреНрдпреВрд▓рд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛
рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд (рдЕрд╕реНрдерд╛рдпреА рдиреБрдХрд╕рд╛рди) рд╣реИрдВ
- рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреАрдбрд╝реЗ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ (рдпрд╣ рдЕрд▓реНрдлрд╛ рдирд╣реАрдВ рд╣реИ);
- рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдХрдореА (рдХреНрдпреВрдЯреА рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ);
- рдкреИрдХреЗрдЬ рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рд╕реНрдЯрдо рдХреА рдХрдореА, рдЗрдВрд╕реНрдЯреЙрд▓рд░ (рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ)ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЗрдЦ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡рд┐рд╖рдп рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдореЗрдВ:
- рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ (рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ);
- рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рд▓рд┐рдЦрдирд╛;
- рдЬреЗрдПрд╕-рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЙрдирдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдХрд╛ рдирд┐рд░реНрдорд╛рдг;
- рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдирд╛;
- рдЧреНрд▓реЛрдмрд▓ рдХреЙрдиреНрдлрд┐рдЧ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЙрдиреНрдлрд┐рдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ;
- рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдирд╛ (.drpoj рдлрд╝рд╛рдЗрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред
рдпрд╣ рд╕рдм рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓реЗрдЦ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ:
narod.ru/disk/49759080001.18d6748f8ef86e26c6dea2e2c5ed7d13/examples.zip.htmlрд╕рдВрдЧреНрд░рд╣рд┐рдд рдмреЛрдирд╕! DELPHI 2007 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ)ред
рд╕рдВрджрд░реНрдн
labs.qt.nokia.com/2012/02/15/introducing-qbs - view
doc-snapshot.qt-project.org/qbs - рдкреНрд░рд▓реЗрдЦрди
qt.gitorious.org/qt-labs/qbs - git
Bugreports.qt-project.org/browse/QBS - рдмрдЧрдЯреНрд░реИрдХрд░ред
рдиреЛрдЯ: рдХреНрдпреВрдЯреА рдмрд┐рд▓реНрдб рд╕рд╛рд▓реНрд╡реЗрд╢рди README рд╕реНрд░реЛрдд рдкреЗрдбрд╝ рдореЗрдВ QBS рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдирд╛рдо рд╣реИред