IOS рдФрд░ OSX рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рд░реНрдХ рдмрдирд╛рдПрдБ

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

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

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


рдлрд┐рд░ рдЖрдк рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред
ред

рдХреНрдпреЛрдВ?


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

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

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


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

рдХреИрд╕реЗ?


рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд▓реЗрдиреЗ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рд╣реИрдмреЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рд╣реИред

рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╡рд╕рд╛рдп, рд╣реЗрдмрд░ рдкрд░ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ GHHUBB рдкрд░ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


рд╣рд╛рдВ, рдЕрд░реНрдерд╛рддреН, рд╣рдо рдХреЗрд╡рд▓ iOS рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (рдФрд░ OSX рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ) рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ "рдореЛрдЯреА" (рдЙрд░реНрдл "рд╡рд╕рд╛" рдпрд╛ рд╡рд╕рд╛) рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рд╕рдм рдХреБрдЫ рднреА рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдХреЛрдХреЛрдЖ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рдмрдирд╛рдПрдВрдЧреЗ ред

рдареАрдХ рд╣реИ, рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдХрджрдо рд╕реЗ рдХрджрдоред

рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдореИрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЪрдмрд╛рдиреЗ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рди рдХрд░реЗред
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ
 VERSION=2.3.4 SHARK_ZIP=shark-$VERSION.zip # --- download() { if [ ! -s $SHARK_ZIP ]; then echo Downloading shark source code $SHARK_ZIP... curl -L --progress-bar -o $SHARK_ZIP "http://sourceforge.net/projects/shark-project/files/Shark%20Core/Shark%20${VERSION}/shark-${VERSION}.zip/download" else echo Source code $SHARK_ZIP already downloaded... fi doneSection } SRC_DIR=src # --- unpackSource() { echo Unpacking $SHARK_ZIP to $SRC_DIR... [ -d $SRC_DIR ] || unzip -q $SHARK_ZIP -d $SRC_DIR [ -d $SRC_DIR ] && echo " ...unpacked as $SRC_DIR" doneSection } 



рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ

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

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛

рдкрд╣рд▓реА рдмрд╛рд░, рдХрдВрдкрд╛рдЗрд▓рд░ ReClaM/EarlyStopping.cpp рдореЗрдВ рд▓рд╛рдЗрди 78 рдкрд░ рдареЛрдХрд░ ReClaM/EarlyStopping.cpp ред
 EarlyStopping::EarlyStopping(unsigned sl = 5) 

EarlyStopping рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдХрд▓ рддрд░реНрдХ ( unsigned sl ) рд╣реИ рдФрд░ рдЗрд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди ( 5 ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ, "рдареАрдХ рд╣реИ, рдЗрд╕реЗ рд░рд╣рдиреЗ рджреЛ" - gcc 4.2 рдХрд╣реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдХреНрд▓реИрдВрдЧ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд░рд╛рдп рд╣реИред рдЖрдк StackOverflow рдкрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреА рдЪрд░реНрдЪрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдЗрд╕реЗ "рдорд╛рдереЗ", рдпрд╛рдиреА рд╕рд╣реА рдХрд░реЗрдВрдЧреЗ рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд┐рдХрд╛рд▓реЗрдВред
 EarlyStopping::EarlyStopping(unsigned sl) 

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

iOS рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдорд┐рдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ

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

рд╕рдорд╛рдзрд╛рди isfinite(x) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ isfinite(x) finite(x) рд░реВрдк рдореЗрдВ finite(x) ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдХреЛ SharkDefs.h рдЬреЛрдбрд╝реЗрдВред
SharkDefs.h
 #if defined(__APPLE__) && defined(__MACH__) /* Apple OSX and iOS (Darwin). */ #include <TargetConditionals.h> #if TARGET_IPHONE_SIMULATOR == 1 /* iOS in Xcode simulator */ #define finite(x) isfinite(x) #elif TARGET_OS_IPHONE == 1 /* iOS on iPhone, iPad, etc. */ #define finite(x) isfinite(x) // #define drem(x, y) remainder(x, y) #elif TARGET_OS_MAC == 1 /* OSX */ #endif #endif 



рдпрд╣рд╛рдБ рддрд░реНрдХ рдирд┐рдореНрди рд╣реИ рдпрджрд┐ рд╣рдо Apple OSes рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред __APPLE__ рдФрд░ __MACH__ , рдЙрд╕рдХреЗ рдмрд╛рдж TargetConditionals.h рд╣реИрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ, рдлрд┐рд░ iOS рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП TARGET_IPHONE_SIMULATOR , TARGET_OS_IPHONE рдФрд░ TARGET_OS_MAC рдФрд░ redefine finite(x) рдХреЗ рдорд╛рдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

drem(x, y) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдареАрдХ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ remainder(x, y) рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╢рд╛рд░реНрдХ drem(x, y) рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рд╕реВрдЪрдирд╛ рдХрд╛ рдПрдХ рдиреЛрдЯ рд╣реИред

FileUtil рдореЗрдВ рдареАрдХ рдХрд░рддрд╛ рд╣реИ

рдирд┐рдореНрди рддреНрд░реБрдЯрд┐рдпрд╛рдБ FileUtil рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН FileUtil.h рдлрд╝рд╛рдЗрд▓ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, iotype рдФрд░ SetDefault , ScanFrom рдФрд░ PrintTo рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЖрдЗрдП рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд╛рдо рд╕реНрдерд╛рди (рдирд╛рдо рд╕реНрдерд╛рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХреЗрдд рджреЗрдВ, рдЕрд░реНрдерд╛рддред рдЬрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░реЗрдВ
 iotype -> FileUtil::iotype SetDefault -> FileUtil::SetDefault ScanFrom -> FileUtil::ScanFrom PrintTo -> FileUtil::PrintTo 


рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдорд╕реНрдпрд╛ io_strict рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬреЛ scanFrom_strict рдФрд░ printTo_strict рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди? рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ io_strict рд▓реЗ io_strict рдФрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдбрдмрд▓ erf (рдбрдмрд▓) рдереНрд░реЛ () ;

Mixture/MixtureOfGaussians.cpp рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдЧрд▓рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд Mixture/MixtureOfGaussians.cpp
 extern "C" double erf(double) throw(); 


extern "C" рдШреЛрд╖рдгрд╛ рдореВрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, throw() рдХреЛ рд╣рдЯрд╛рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
 extern "C" double erf(double); 


рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджреЗрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ throw() рдХреЛ рд╣рдЯрд╛рдирд╛ throw() ред рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред


рд░реИрдВрдбрдорд╡реЗрдХреНрдЯрд░ рдпрд╣-> рдкреА

рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ Mixture/RandomVector.h , рд▓рд╛рдЗрди 72 рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ p рдХреИрд╕реЗ Mixture/RandomVector.h ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЪрд┐рдВрддрд╛рдЬрдирдХ рдЗрд╕ рд▓рд╛рдЗрди рдкрд░ рдХреЛрдб рдЯрд┐рдкреНрдкрдгреА рд╣реИ ( // !!! )ред
 for (unsigned k = x.dim(0); k--;) { l += log(Shark::max(p(x[ k ]), 1e-100)); // !!! } 

рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд p ред RandomVector рдиреЗ RandomVector рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ RandomVar , рдЬрд┐рд╕рдиреЗ "рдЦреЛрдИ" рд╡рд┐рдзрд┐ p рдШреЛрд╖рд┐рдд рдХреАред
рдкреА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ
 // RandomVar.h template < class T > class RandomVar { public: // *** virtual double p(const T&) const = 0; // *** } // RandomVector.h template < class T > class RandomVector : public RandomVar< Array< T > > { public: // *** } 



рдЗрд╕ рдХрд╛ this->p ред
 for (unsigned k = x.dim(0); k--;) { l += log(Shark::max(this->p(x[ k ]), 1e-100)); // !!! } 


CMakeLists.txt

рдирд╡реАрдирддрдо рдкреИрдЪ рдХрд╛ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
рдЪреВрдВрдХрд┐ рд╣рдо iOS рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрдерд┐рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреАред рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CMakeLists.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓реЗрдВред
 ADD_LIBRARY( shark SHARED ${SRCS} ) #   ADD_LIBRARY( shark STATIC ${SRCS} ) 

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

рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░реЗрдВ

рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓реЗрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╕рдордп рдФрд░ рдирд╕реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдкреИрдЪ рд╣реИ ред
рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдкреИрдЪ рдХреЛ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
 diff -crB shark_orig shark_patched > shark.patch 

рдФрд░ рдЗрд╕ рдкреИрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдзреНрдпрд╛рди, patch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
 SRC_DIR=src # --- patchSource() { echo Patching source code... patch -d $SRC_DIR/Shark -p1 --forward -r - -i ../../shark.patch doneSection } 


рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдмрдирд╛рдПрдБ

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


рд╣рд╛рдВ, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ, рд╣рдо Xcode 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред armv6 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди armv6 рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ Xcode 5 рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ armv6 , рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ armv6 ред


рд╣рдо iOS рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдПрдХ "рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдорд░реНрдЬ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдФрд░ рд╕рд╛рде рд╣реА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Cmake рдореВрд▓ рдмрд╛рддреЗрдВ

рдЗрд╕рд▓рд┐рдП cmake ред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


Xcode рдЯреВрд▓рдХрд┐рдЯ

рдпрд╣ рдЯреВрд▓рдЪрд┐рди рд╢рдмреНрдж рдХрд╛ рд╕рдмрд╕реЗ рд╕рдлрд▓ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдЯреВрд▓ рдЪреЗрди" рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред Xcode рдореЗрдВ рд╡реЗ рд╕рднреА рдЙрдкрдХрд░рдг рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (iPhone OS SDK рдФрд░ iPhone рд╕рд┐рдореБрд▓реЗрдЯрд░ SDK, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝), Xcode рдЕрд╡рд╢реНрдп рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреЛ рднреА рдЙрд╕реА рдЯреВрд▓ (Xcode рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕) рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Xcode рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╛ xcode-select --install рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдЕрдм рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП xcode-select рдХрд╛ рдЙрдкрдпреЛрдЧ xcode-select ред
Xcode рдЙрдкрдХрд░рдг
 #     XCODE_ROOT=$(xcode-select -print-path) #   iPhone OS SDK XCODE_ARM_ROOT=$XCODE_ROOT/Platforms/iPhoneOS.platform/Developer #   iPhone Simulator SDK XCODE_SIM_ROOT=$XCODE_ROOT/Platforms/iPhoneSimulator.platform/Developer #    ,  ... XCODE_TOOLCHAIN_BIN=$XCODE_ROOT/Toolchains/XcodeDefault.xctoolchain/usr/bin # C++  CXX_COMPILER=${XCODE_TOOLCHAIN_BIN}/clang++ # C  C_COMPILER=${XCODE_TOOLCHAIN_BIN}/clang 



рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдПрд╕рдбреАрдХреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, cmake рдЕрдкрдиреЗ рдЖрдк рд╣реА рд░реВрдЯ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢ рдХреЗред

рдХреНрд░рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ред

iOS рдбрд┐рд╡рд╛рдЗрд╕ (iPhone OS SDK)
рд╣рдо рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗ, build/ios рдХрд╣реЗрдВрдЧреЗред

рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдВрдкрд╛рдЗрд▓рд░ рдорд┐рд▓ рдЧрдП, рдЕрдм рд╣рдо C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдЭрдВрдбреЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рд╣рдо armv7 , armv7s рдФрд░ arm64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ, рд╣рдо armv7s clang++ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖- -arch рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА SDKs/iPhoneOS7.0.sdk рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ XCODE_ARM_ROOT рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ
 CXX_FLAGS="-arch armv7 -arch armv7s -arch arm64" SYSTEM_ROOT=${XCODE_ARM_ROOT}/SDKs/iPhoneOS7.0.sdk 


cmake рдХреЙрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛
 mkdir -p build/ios cd build/ios cmake \ -DCMAKE_CXX_COMPILER=$CXX_COMPILER \ -DCMAKE_OSX_SYSROOT="$SYSTEM_ROOT" \ -DCMAKE_C_COMPILER=$C_COMPILER \ -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ -G "Unix Makefiles" \ ../../src/Shark 


рд╡реИрд╕реЗ, cmake рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕реА рдФрд░ рд╕реА ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, cmake рдПрдХ рд╣реА рдЯреВрд▓рдХрд┐рдЯ рд╕реЗ рдЕрдиреНрдп рд╕рднреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ ranlib , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ranlib , lipo , ld , рдЖрджрд┐ред


iOS рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (iPhone рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ SDK)
рд╡рд╣реА рдХрдВрдкрд╛рдЗрд▓рд░ред

рдЬрд┐рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рд╣рдореЗрдВ рдЗрд╕ рд╕рдордп рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡реЗ i386 рдФрд░ x86_64 , рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ 64-рдмрд┐рдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "iPhone рд░реЗрдЯрд┐рдирд╛ (4-рдЗрдВрдЪ 64-рдмрд┐рдЯ)"ред

рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА ${XCODE_SIM_ROOT}/SDKs/iPhoneSimulator7.0.sdk ред

рдФрд░ рдПрдХ рдФрд░ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ -mios-simulator-version-min=7.0 рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

 mkdir -p build/sim cd build/sim CXX_FLAGS="-arch i386 -arch x86_64 -mios-simulator-version-min=7.0" SYSTEM_ROOT=${XCODE_SIM_ROOT}/SDKs/iPhoneSimulator7.0.sdk cmake \ -DCMAKE_CXX_COMPILER=$CXX_COMPILER \ -DCMAKE_OSX_SYSROOT="$SYSTEM_ROOT" \ -DCMAKE_C_COMPILER=$C_COMPILER \ -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ -G "Unix Makefiles" \ ../../src/Shark 


рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ред
рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдХреЗрд╡рд▓ C рдФрд░ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, cmake рдмрд╛рдХреА рдХреЛ рдЦреБрдж cmake ред
 mkdir -p build/osx cd build/osx cmake \ -DCMAKE_CXX_COMPILER=$CXX_COMPILER \ -DCMAKE_C_COMPILER=$C_COMPILER \ -G "Unix Makefiles" \ ../../src/Shark 


Cmake рдХреА рдЪрд╛рд▓

рдЕрдЪреНрдЫрд╛ рдЪрд▓реЛ рдЕрдм make !, рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВред
cmake рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ cmake ред

рд╕рдВрдХрд▓рдХ рдкрд░реАрдХреНрд╖рдг
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, cmake рд╕реА рдФрд░ рд╕реА ++ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИред рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдХреНрд▓реИрдВрдЧ рдФрд░ рдХреНрд▓реИрдВрдЧ ++ рдЖрдИрдУрдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╡рд┐рдлрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CMakeLists.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рд╡рд░рдг рдореЗрдВ NONE рдЬреЛрдбрд╝реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред
 PROJECT( shark NONE ) 


рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ cmake рдФрд░ cmake ++ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдФрд░ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╣рд▓реЗ cmake рд╢реБрд░реВ cmake ред cmake рдПрдХ CMakeCache.txt рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ CMakeFiles рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЙрддреНрдкрдиреНрди cmake ред рдпрджрд┐ рдЖрдк рдЕрдм рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде cmake рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдмрд╛рд░ рд╕рдВрдХрд▓рдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди
рдХреБрд▓, cmake рдХреЛ рдХрдо рд╕реЗ рдХрдо 2 рдмрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, - рдлрд┐рд░ рд╕реЗ рдЖрдк рд╕реЛрдЪреЗрдВрдЧреЗред
рдФрд░ рдлрд┐рд░ рд╕реЗ, рдирд╣реАрдВред

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░


рдореЗрдХрдЕрдк

рдЬреА рд╣рд╛рдВ, рдЕрдм рдЖрдк рдкреЛрд╖рд┐рдд make рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ make ред рдЪреАрдЬреЛрдВ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк -j рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 make -j16 

рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдорд╛рд░реЗ рдкрд╛рд╕ libshark.a рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп libshark.a ред рд╣рд░ рдлрд╛рдпрд░ рдлрд╛рдЗрдЯрд░ рдХреЗ рд▓рд┐рдП, file рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред
рдореЛрдЯреА рдЬрд╛рдБрдЪ
 $ file build/ios/libshark.a build/ios/libshark.a: Mach-O universal binary with 3 architectures build/ios/libshark.a (for architecture armv7): current ar archive random library build/ios/libshark.a (for architecture armv7s): current ar archive random library build/ios/libshark.a (for architecture cputype (16777228) cpusubtype (0)): current ar archive random library $ file build/sim/libshark.a build/sim/libshark.a: Mach-O universal binary with 2 architectures build/sim/libshark.a (for architecture i386): current ar archive random library build/sim/libshark.a (for architecture x86_64): current ar archive random library $ file build/osx/libshark.a build/osx/libshark.a: current ar archive random library 



"рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдПрдВ

IOS рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдХ "рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, lipo рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░реЗрдЧреА lipo
 mkdir -p lib/ios $XCODE_TOOLCHAIN_BIN/lipo -create build/ios/libshark.a build/sim/libshark.a -o lib/ios/libshark.a 

рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдореА рд▓рд╛рдЗрдмреНрд░реЗрд░реА ( file lib/ios/libshark.a ) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рднреА 5 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЬрдЧрд╣ рдореЗрдВ рд╣реИрдВред

рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреИрдХ рдХрд░реЗрдВ

рдпрд╣ рдПрдХ рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдлреНрд░реЗрдорд╡рд░реНрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрдХреНрд╕рд░ рдмрдВрдбрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдмрдВрдбрд▓ рдмрдирд╛рдПрдВ

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде, рдЗрд╕рдХреЗ рд▓рд┐рдП mkdir рдФрд░ ln рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Shark.framework рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЕрдВрджрд░ рдмрдирд╛рдПрдВред
 Shark.framework/ тФЬтФАтФА Documentation -> Versions/Current/Documentation тФЬтФАтФА Headers -> Versions/Current/Headers тФЬтФАтФА Resources -> Versions/Current/Resources тФФтФАтФА Versions тФЬтФАтФА A тФВ тФЬтФАтФА Documentation тФВ тФЬтФАтФА Headers тФВ тФФтФАтФА Resources тФФтФАтФА Current -> A 


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ

рдЕрдм рдмрдВрдбрд▓ рдХреЗ рдЕрдВрджрд░ рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ, рдЬрдмрдХрд┐ рдЗрд╕реЗ Shark рдХреЛ рдирд╛рдорд╛рдВрдХрд┐рдд рдХрд░рддреЗ рд╣реБрдПред
 cp build/ios/libshark.a Shark.framework/Versions/A/Shark 


рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ

рдЕрдЧрд▓рд╛, src/Shark/include рд╕реЗ рд╕рднреА .h рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ src/Shark/include рдмрдВрдбрд▓ рдХреЗ рдЕрдВрджрд░ Headers рдлрд╝реЛрд▓реНрдбрд░ src/Shark/include рдХрд░реЗрдВред рдлрд┐рд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ statistics.h рд╣рдЯрд╛рдПрдВред рдпрджрд┐ рдХреЗрд╡рд▓ CMakeLists.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рди INSTALL рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
 cp -r src/Shark/include/* Shark.framework/Headers/ rm Shark.framework/Headers/statistics.h 


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

рдЪреВрдВрдХрд┐ рд╢рд╛рд░реНрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ #include рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдзреНрдпрд╛рди рдПрдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдУрд░ рдмрдврд╝рд╛рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ рдмрдврд╝рд╛рд╡рд╛ред рдмреВрд╕реНрдЯ рд╕реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП #include рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕рднреА рдкрде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, boost/ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ
 #include "boost/config.hpp" #include <boost/type_traits/remove_reference.hpp> 


рд╣рдо рд╕рднреА #include рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ sed рд╕рдВрдкрд╛рджрдХ рдФрд░ рдкреИрдЪ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ


рдпрд╣рд╛рдБ рдШрдЯрдХреЛрдВ рд╕реЗ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм Headers рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╣реИ, рдЕрд░реНрдерд╛рдд Array, Rng, LinAlg, FileUtil, EALib, MOO-EALib, ReClaM, Mixture, TimeSeries, Fuzzy ред

рдкреИрдЪ .h рдлрд╛рдЗрд▓реЗрдВ
 #     "invalid character sequence" export LC_TYPE=C export LANG=C #     #include  #    SharkDefs.h #      #  -E     ,       "gnu vs non-gnu sed" components="Array|Rng|LinAlg|FileUtil|EALib|MOO-EALib|ReClaM|Mixture|TimeSeries|Fuzzy" find Shark.framework/Headers -type f -exec \ sed -E -i '' \ -e "s,#include([<\"]),#include \1,g" \ -e "s,#include([ \t])([<\"])(SharkDefs.h),#include\1\2Shark/\3,g" \ -e "s,#include([ \t])([<\"])(${components}/),#include\1\2Shark/\3,g" \ {} + 



Info.plist рдмрдирд╛рдПрдБ

рдПрдХ рдврд╛рдВрдЪрд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдВрддрд┐рдо рдХрджрдо рд╕рдВрдмрдВрдзрд┐рдд Info.plist рдмрдирд╛рдирд╛ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдг рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдирд╛рдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВред
Info.plist рдмрдирд╛рдПрдБ
 FRAMEWORK_NAME=Shark FRAMEWORK_CURRENT_VERSION=2.3.4 cat > Shark.framework/Resources/Info.plist <<EOF <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> <string>${FRAMEWORK_NAME}</string> <key>CFBundleIdentifier</key> <string>dk.diku.image</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>${FRAMEWORK_CURRENT_VERSION}</string> </dict> </plist> EOF 



IOS 7 рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, arm64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕, рдпрд╣ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕реНрдЯреИрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ, рдПрдХ рд╕рд╛рде iOS рдФрд░ OSX, рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╕рд╣рд┐рддред рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХрд╛ рдЧрдпрд╛ armv6, armv7, armv7s, i386 рдФрд░ x86_64 рдХреЛ рдПрдХ рдмреЛрд▓реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ armv6, armv7, armv7s, i386 рдХрд░рдиреЗ рд╕реЗред 64-рдмрд┐рдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдиреЗ рд╕рднреА рдХрд╛рд░реНрдбреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ред "рдореЛрдЯреА" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рд╣реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рджреЛ рдкрд░рддреЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк 64 x86_64 рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ iOS рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП x86_64 рдФрд░ OS X рдХреЗ рд▓рд┐рдП x86_64 рдХреЛ рд░рдЯрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред


рдХреЛрдХреЛрдЖрдкреЛрдбреНрд╕ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ

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

рдЪреВрд▓реНрд╣рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рдФрд░ рдХрд╣рд╛рдиреА рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдореИрдВрдиреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рд╣рд░ рдЫреЛрдЯреА рдЪреАрдЬ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдореИрдВ рд╕рдорд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ред
рд╢рд╛рд░реНрдХ-SDK.podspec
 Pod::Spec.new do |s| s.name = 'Shark-SDK' s.version = '2.3.4' s.license = { :type => 'GPLv2', :text => 'See https://sourceforge.net/directory/license:gpl/' } s.summary = 'iOS & OS X framework for Shark: C++ Machine Learning Library' s.description = <<-DESC SHARK provides libraries for the design of adaptive systems, including methods for linear and nonlinear optimization (eg, evolutionary and gradient-based algorithms), kernel-based algorithms and neural networks, and other machine learning techniques. DESC s.homepage = 'https://sourceforge.net/projects/shark-project/' s.author = { 'shark-admin' => 'https://sourceforge.net/u/shark-admin/profile/' } s.source = { :http => 'https://github.com/mgrebenets/shark2-iosx/releases/download/v2.3.4/Shark-SDK.tgz', :type => :tgz } s.ios.vendored_frameworks = "Shark-iOS-SDK/Shark.framework" s.osx.vendored_frameworks = "Shark-OSX-SDK/Shark.framework" s.ios.deployment_target = '6.0' s.osx.deployment_target = '10.7' end 



рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
Podfile
 # Podfile platform :ios, :deployment_target => '6.0' pod 'Shark-SDK' target :'shark2-osx-demo', :exclusive => true do platform :osx, :deployment_target => '10.7' pod 'Shark-SDK' end 



рдкрд░рд┐рдгрд╛рдо


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

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


All Articles