{"id":208052,"date":"2014-01-06T16:51:03","date_gmt":"2014-01-06T12:51:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=208052"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=208052","title":{"rendered":"<span class=\"post_title\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0410\u043a\u0443\u043b\u0443 \u043f\u043e\u0434 iOS \u0438 OSX<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/586\/8e7\/df7\/5868e7df70116af2c59bee3ab3904a4c.png\" alt=\"image\"\/><br \/>  \u0414\u0430, \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d \u0441\u043c\u044b\u0441\u043b\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439, \u0434\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u0435\u0449\u0435 \u0434\u0443\u043c\u0430\u0435\u0442 \u00ab\u0438\u0434\u0442\u0438 \u043f\u043e\u0434 \u0442\u0430\u043a \u0438\u043b\u0438 \u043d\u0435\u0442?\u00bb.<\/p>\n<p>  <a href=\"https:\/\/sourceforge.net\/projects\/shark-project\/\">Shark<\/a> \u2014 \u043d\u0430\u0431\u043e\u0440 \u0421++ \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f (Machine Learning), \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0438 \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c \u0438 \u0431\u0435\u0437, \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435. \u0411\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/sourceforge.net\/projects\/shark-project\/\">\u0441\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b  <\/p>\n<ul>\n<li>\u041a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f iOS?<\/li>\n<li>\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f iOS?<\/li>\n<li>\u041a\u0430\u043a \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c iOS \u0438 OSX \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0447\u0435\u0440\u0435\u0437 CocoaPods?<\/li>\n<\/ul>\n<p>  <a name=\"habracut\"><\/a>.<\/p>\n<h4>\u0417\u0430\u0447\u0435\u043c?<\/h4>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c, \u2014 \u00ab\u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0434\u043b\u044f iOS\u00bb, \u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u0438 \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430. \u0420\u0430\u0431\u043e\u0442\u0430\u044f \u043d\u0430\u0434 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u0439 \u0438\u0433\u0440\u043e\u0439 \u043f\u043e\u0434 iOS \u043c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 (\u0418\u0418) \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430.<\/p>\n<p>  \u041f\u043b\u0430\u043d \u0431\u044b\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0418\u0418, \u043f\u0440\u043e\u0433\u043d\u0430\u0432 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0442\u044b\u0441\u044f\u0447 \u0438\u0433\u0440, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044f \u0438\u0445 \u043d\u0430 \u043c\u043e\u0449\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u043f\u043e\u0434 Mac OS, \u0437\u0430\u0442\u0435\u043c \u0432\u0437\u044f\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0430 iPhone\/iPad. \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e Shark \u0432\u0435\u0440\u0441\u0438\u0438 2.3.4 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430 \u043c\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>brew install shark<\/code>.<\/p>\n<blockquote><p>\u0422\u0443\u0442 \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u043e \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 2.3.4. \u0421\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0443\u0436\u0435 \u0434\u0430\u043b\u0435\u043a\u043e \u0443\u0448\u0435\u043b \u043e\u0442 2.3.4, \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 <a href=\"http:\/\/image.diku.dk\/shark\/sphinx_pages\/build\/html\/index.html#\">\u0431\u0435\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 3.0<\/a>. \u041a\u043e\u0434 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <a href=\"http:\/\/www.boost.org\/\">boost<\/a> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 iOS.<\/p><\/blockquote>\n<p>  \u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043b\u0430\u043d\u0430. \u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0443 \u043c\u0435\u043d\u044f \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u0424\u043e\u0440\u043c\u0430\u0442 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u043e\u043f\u0438\u0441\u0430\u043d (\u0438\u043b\u0438 \u044f \u043f\u043b\u043e\u0445\u043e \u0438\u0441\u043a\u0430\u043b), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u2014 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u0433\u043e \u0436\u0435 Shark, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043f\u043e\u0434 iOS.<\/p>\n<h4>\u041a\u0430\u043a?<\/h4>\n<p>  \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u2014 \u0432\u0437\u044f\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u2014 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0425\u0430\u0431\u0440\u0435.<\/p>\n<p>  \u041f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0434\u0435\u043b\u043e, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u0425\u0430\u0431\u0440, \u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0431\u0440\u0430\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u043e\u0444\u043e\u0440\u043c\u0438\u043b \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0432 \u0432\u0438\u0434\u0435 <a href=\"https:\/\/github.com\/mgrebenets\/shark2-iosx\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043d\u0430 GitHub<\/a>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0441\u0442 \u043a\u0443\u0441\u043a\u0430\u043c\u0438 \u043a\u043e\u0434\u0430 \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<p>  \u0412\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u044d\u0442\u0430\u043f\u044b  <\/p>\n<ul>\n<li>\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/li>\n<li>\u041f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/li>\n<li>\u0421\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c<\/li>\n<li>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u00ab\u0442\u043e\u043b\u0441\u0442\u0443\u044e\u00bb \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443<\/li>\n<li>\u0423\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0432 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a<\/li>\n<li>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0430 CocoaPods<\/li>\n<\/ul>\n<p>  \u0414\u0430, \u0438\u043c\u0435\u043d\u043d\u043e, \u043c\u044b \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u00ab\u0442\u043e\u043b\u0441\u0442\u0443\u044e\u00bb (aka \u00ab\u0436\u0438\u0440\u043d\u0443\u044e\u00bb \u0438\u043b\u0438 fat) \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 (\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f OSX), \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043e\u0444\u043e\u0440\u043c\u0438\u043c \u0432\u0441\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0447\u0435\u0440\u0435\u0437 <a href=\"http:\/\/beta.cocoapods.org\/?q=shark-sdk\">CocoaPods<\/a>.<\/p>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c, \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c.<\/p>\n<h5>\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/h5>\n<p>  \u0422\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u0435 \u0431\u0443\u0434\u0443 \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0435\u0442\u0430\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0447\u0435\u0440\u0435\u0441\u0447\u0443\u0440 \u0440\u0430\u0437\u0436\u0435\u0432\u0430\u043d\u043e, \u043a\u0430\u0447\u0430\u0435\u043c \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">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 &quot;http:\/\/sourceforge.net\/projects\/shark-project\/files\/Shark%20Core\/Shark%20${VERSION}\/shark-${VERSION}.zip\/download&quot;      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 &quot; ...unpacked as $SRC_DIR&quot;         doneSection } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h5>\u041f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/h5>\n<p>  \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043a\u043e\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e gcc 4.2, \u043c\u044b \u0436\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f clang \u0432\u0435\u0440\u0441\u0438\u0438 5.0. \u0421 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0432\u044b\u0445\u043e\u0434\u0430 gcc 4.2 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 C++ \u0443\u0448\u043b\u0438 \u0434\u0430\u043b\u0435\u043a\u043e \u0432\u043f\u0435\u0440\u0435\u0434, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e clang-\u0443 \u043f\u0440\u0438\u0439\u0434\u0443\u0442\u0441\u044f \u043d\u0435 \u043f\u043e \u0432\u043a\u0443\u0441\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0443\u0441\u043a\u0438 \u043a\u043e\u0434\u0430. \u041d\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0442.\u0435. \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u0442\u044c, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<h6>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/h6>\n<p>  \u0412 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043f\u043e\u0442\u043a\u043d\u0435\u0442\u0441\u044f \u043d\u0430 78-\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>ReClaM\/EarlyStopping.cpp<\/code>.  <\/p>\n<pre><code class=\"cpp\">EarlyStopping::EarlyStopping(unsigned sl = 5) <\/code><\/pre>\n<p>  \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <code>EarlyStopping<\/code> \u0438\u043c\u0435\u0435\u0442 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 (<code>unsigned sl<\/code>) \u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (<code>5<\/code>). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u00ab\u043d\u0443 \u0438 \u043f\u0443\u0441\u0442\u044c\u00bb \u2014 \u0441\u043a\u0430\u0436\u0435\u0442 gcc 4.2, \u043d\u043e \u0443 clang-\u0430 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0435 \u043c\u043d\u0435\u043d\u0438\u0435. \u041d\u0430 <a href=\"http:\/\/stackoverflow.com\/\">StackOverflow<\/a> \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"http:\/\/createdigitalnoise.com\/discussion\/1754\/can-t-compile-expr-with-xcode-4-5-2-same-project-works-in-xcode-4-4-1\">\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435<\/a> \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<p>  \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u00ab\u0432 \u043b\u043e\u0431\u00bb, \u0442.\u0435. \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0431\u0435\u0440\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.  <\/p>\n<pre><code class=\"cpp\">EarlyStopping::EarlyStopping(unsigned sl) <\/code><\/pre>\n<p>  \u0421\u0435\u043a\u0443\u043d\u0434\u043e\u0447\u043a\u0443! \u2014 \u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u0432\u044b, \u2014 \u0430 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432 \u043a\u043e\u0434\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0431\u0435\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430?<br \/>  \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043d\u0438\u0433\u0434\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f (\u043a\u0430\u043a \u044f\u0432\u043d\u043e, \u0442\u0430\u043a \u0438 \u043d\u0435\u044f\u0432\u043d\u043e), \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0440\u0435\u0434\u0430 \u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0438 \u0435\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0435 \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0434\u0435 \u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <code>sl<\/code>.<\/p>\n<h6>finite \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f iOS<\/h6>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>finite(x)<\/code> \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 (\u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \/ not included) \u0434\u043b\u044f iOS, \u043a\u0430\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430. \u0412 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043e\u0431 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"http:\/\/createdigitalnoise.com\/discussion\/1754\/can-t-compile-expr-with-xcode-4-5-2-same-project-works-in-xcode-4-4-1\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>isfinite(x)<\/code>. \u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c <code>finite(x)<\/code> \u043a\u0430\u043a <code>isfinite(x)<\/code> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432 <code>SharkDefs.h<\/code>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">SharkDefs.h<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#if defined(__APPLE__) && defined(__MACH__) \/* Apple OSX and iOS (Darwin). *\/ #include &lt;TargetConditionals.h&gt; #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 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041b\u043e\u0433\u0438\u043a\u0430 \u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0434 \u043e\u0434\u043d\u0443 \u0438\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043e\u043a Apple, \u0442.\u0435. \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b <code>__APPLE__<\/code> \u0438 <code>__MACH__<\/code>, \u0442\u043e\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>TargetConditionals.h<\/code>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>TARGET_IPHONE_SIMULATOR<\/code>, <code>TARGET_OS_IPHONE<\/code> \u0438 <code>TARGET_OS_MAC<\/code>, \u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c <code>finite(x)<\/code> \u0434\u043b\u044f iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>  \u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <code>drem(x, y)<\/code>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 <code>remainder(x, y)<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e Shark <code>drem(x, y)<\/code> \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442, \u0442\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043a \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044e.<\/p>\n<h6>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 FileUtil<\/h6>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c <code>FileUtil<\/code>, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0444\u0430\u0439\u043b\u043e\u043c <code>FileUtil.h<\/code>.<\/p>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 clang \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 <code>iotype<\/code> \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 <code>SetDefault<\/code>, <code>ScanFrom<\/code> \u0438 <code>PrintTo<\/code>. \u0414\u0430\u0434\u0438\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d (namespace), \u0442.\u0435. \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0437\u0430\u043c\u0435\u043d\u0443 \u0442\u0430\u043c \u0433\u0434\u0435 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e  <\/p>\n<pre><code class=\"cpp\">iotype -&gt; FileUtil::iotype SetDefault -&gt; FileUtil::SetDefault ScanFrom -&gt; FileUtil::ScanFrom PrintTo -&gt; FileUtil::PrintTo <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>io_strict<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>scanFrom_strict<\/code> \u0438 <code>printTo_strict<\/code>, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0437\u0436\u0435.<br \/>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435? \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u043c <code>io_strict<\/code> \u0432 \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430 \u0438 \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<h6>double erf(double) <s>throw()<\/s>;<\/h6>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f <code>Mixture\/MixtureOfGaussians.cpp<\/code> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043a\u0430\u043a \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0439  <\/p>\n<pre><code class=\"cpp\">extern &quot;C&quot; double erf(double) throw(); <\/code><\/pre>\n<p>  <code>extern &quot;C&quot;<\/code> \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u043c.<br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u0435\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f <code>throw()<\/code>.  <\/p>\n<pre><code class=\"cpp\">extern &quot;C&quot; double erf(double); <\/code><\/pre>\n<blockquote><p>\u042f \u043e\u0442\u0434\u0430\u044e \u0441\u0435\u0431\u0435 \u043e\u0442\u0447\u0435\u0442, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u044f \u043d\u0435 \u0434\u0430\u044e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 <code>throw()<\/code>. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u043c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p><\/blockquote>\n<h6>RandomVector this-&gt;p<\/h6>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043d\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0444\u0430\u0439\u043b <code>Mixture\/RandomVector.h<\/code>, \u0441\u0442\u0440\u043e\u043a\u0430 72. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043a\u0430\u043a \u0431\u044b\u0442\u044c \u0441 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 <code>p<\/code>. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043a \u043a\u043e\u0434\u0443 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 (<code>\/\/ !!!<\/code>).  <\/p>\n<pre><code class=\"cpp\">for (unsigned k = x.dim(0); k--;) {     l += log(Shark::max(p(x[ k ]), 1e-100));    \/\/ !!! } <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u043a\u043e\u0434, \u044f \u043d\u0430\u0448\u0435\u043b \u044d\u0442\u0443 \u0441\u0430\u043c\u0443\u044e <code>p<\/code>. <code>RandomVector<\/code> \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 <code>RandomVar<\/code>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u00ab\u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0439\u00bb \u043c\u0435\u0442\u043e\u0434 <code>p<\/code>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 p<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">\/\/ RandomVar.h template &lt; class T &gt; class RandomVar { public:     \/\/ ***     virtual double p(const T&) const = 0;     \/\/ *** }  \/\/ RandomVector.h template &lt; class T &gt; class RandomVector : public RandomVar&lt; Array&lt; T &gt; &gt; { public:     \/\/ *** } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>this-&gt;p<\/code>.  <\/p>\n<pre><code class=\"cpp\">for (unsigned k = x.dim(0); k--;) {     l += log(Shark::max(this-&gt;p(x[ k ]), 1e-100));    \/\/ !!! } <\/code><\/pre>\n<h6>CMakeLists.txt<\/h6>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0430\u0442\u0447 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<br \/>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f iOS, \u044d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043e\u0431\u0435\u0440\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>CMakeLists.txt<\/code>.  <\/p>\n<pre><code class=\"cmake\">ADD_LIBRARY( shark SHARED ${SRCS} ) # \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 ADD_LIBRARY( shark STATIC ${SRCS} ) <\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u00abSHARED\u00bb, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0441 \u00abSTATIC\u00bb, \u0442\u043e\u0433\u0434\u0430 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<h6>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0430\u0442\u0447<\/h6>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c \u043a\u043e\u0434 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0414\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043d\u0435\u0440\u0432\u043e\u0432 \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/mgrebenets\/shark2-iosx\/blob\/master\/shark.patch\">\u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0430\u0442\u0447<\/a>.<br \/>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u044d\u0442\u043e\u0442 \u043f\u0430\u0442\u0447 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b <code>diff<\/code>  <\/p>\n<pre><code class=\"bash\">diff -crB shark_orig shark_patched &gt; shark.patch <\/code><\/pre>\n<p>  \u0410 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u0430\u0442\u0447, \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0443, \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, <code>patch<\/code>  <\/p>\n<pre><code class=\"bash\">SRC_DIR=src # --- patchSource() {         echo Patching source code...         patch -d $SRC_DIR\/Shark -p1 --forward -r - -i ..\/..\/shark.patch         doneSection } <\/code><\/pre>\n<h5>\u0421\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c<\/h5>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0441 \u043f\u0430\u0442\u0447\u0430\u043c\u0438 \u043f\u043e\u043a\u043e\u043d\u0447\u0435\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0441\u0431\u043e\u0440\u043a\u0435.<br \/>  \u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>make<\/code>, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <code>cmake<\/code> (configure make), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u0441\u0442 <code>Makefile<\/code> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 <code>make<\/code>. \u041d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 3 \u0440\u0430\u0437\u0430, \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440  <\/p>\n<ul>\n<li>iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <code>armv7<\/code>, <code>armv7s<\/code>, <code>arm64<\/code><\/li>\n<li>iOS \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u2014 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <code>i386<\/code> \u0438 <code>x86_64<\/code><\/li>\n<li>OSX \u2014 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 <code>x86_64<\/code><\/li>\n<\/ul>\n<blockquote><p>\u0414\u0430, \u043d\u0435\u043c\u0430\u043b\u043e\u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Xcode 5. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <code>armv6<\/code> \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0430 \u0438\u0437 Xcode 5, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u0435\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c.<\/p><\/blockquote>\n<p>  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043c\u044b \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u043b\u044c\u0435\u043c \u0432 \u043e\u0434\u043d\u0443 \u00ab\u0442\u043e\u043b\u0441\u0442\u0443\u044e\u00bb \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0442\u0435\u043b\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439.<\/p>\n<h6>\u041e\u0441\u043d\u043e\u0432\u044b cmake<\/h6>\n<p>  \u0418\u0442\u0430\u043a, <code>cmake<\/code>. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438  <\/p>\n<ul>\n<li><b>C++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440<\/b> (<code>CMAKE_CXX_COMPILER<\/code>)<br \/>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>\/usr\/bin\/c++<\/code>, \u043d\u0430\u043c \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>clang++<\/code> \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f (toolchain) Xcode.<\/li>\n<li><b>\u0424\u043b\u0430\u0433\u0438 \u0421++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430<\/b> (<code>CMAKE_CXX_FLAGS<\/code>)<br \/>  \u0418\u043c\u0435\u043d\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u0444\u043b\u0430\u0433\u043e\u0432 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/li>\n<li><b>C \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440<\/b> (<code>CMAKE_C_COMPILER<\/code>)<br \/>  \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u0421 \u043a\u043e\u0434\u0430, \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440.<\/li>\n<li><b>\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f<\/b> (<code>CMAKE_OSX_SYSROOT<\/code>)<br \/>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043c\u044b \u0441\u043e\u043e\u0431\u0449\u0438\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u0433\u0434\u0435 \u0438\u0441\u043a\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b.<\/li>\n<li><b>\u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/b> (<code>CMAKE_INSTALL_PREFIX<\/code>)<br \/>  \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 <code>make install<\/code>, \u043d\u043e \u043c\u044b \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c.<\/li>\n<li><b>\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/b> (\u0444\u043b\u0430\u0433 <code>-G<\/code>)<br \/>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0438. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u00abUnix Makefiles\u00bb, \u0442.\u0435. <code>cmake<\/code> \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 <code>Makefile<\/code>. \u041b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Xcode \u043f\u0440\u043e\u0435\u043a\u0442, \u043d\u043e \u043c\u043d\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c.<\/li>\n<\/ul>\n<h6>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 Xcode<\/h6>\n<p>  \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0442\u0435\u0440\u043c\u0438\u043d\u0430 Toolchain, \u043d\u043e \u0443\u0436 \u0442\u043e\u0447\u043d\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u00ab\u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432\u00bb. Xcode \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b (\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f iPhone OS SDK \u0438 iPhone Simulator SDK, \u0438 \u0442.\u0434.) \u042f\u0441\u043d\u043e\u0435 \u0434\u0435\u043b\u043e, Xcode \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u0442\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 (Xcode Command Line Tools), \u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0441\u0430\u043c\u043e\u0433\u043e Xcode \u0438\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>xcode-select --install<\/code>.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <code>xcode-select<\/code>, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b Xcode<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"># \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 XCODE_ROOT=$(xcode-select -print-path) # \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 iPhone OS SDK XCODE_ARM_ROOT=$XCODE_ROOT\/Platforms\/iPhoneOS.platform\/Developer # \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 iPhone Simulator SDK XCODE_SIM_ROOT=$XCODE_ROOT\/Platforms\/iPhoneSimulator.platform\/Developer # \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a... XCODE_TOOLCHAIN_BIN=$XCODE_ROOT\/Toolchains\/XcodeDefault.xctoolchain\/usr\/bin  # C++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 CXX_COMPILER=${XCODE_TOOLCHAIN_BIN}\/clang++ # C \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 C_COMPILER=${XCODE_TOOLCHAIN_BIN}\/clang  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 Mac OS X SDK, <code>cmake<\/code> \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043c\u0435\u043d \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0439.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043f\u043e-\u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/p>\n<p>  <b>iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (iPhone OS SDK)<\/b><br \/>  \u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435, \u0441\u043a\u0430\u0436\u0435\u043c <code>build\/ios<\/code>.<\/p>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b \u043c\u044b \u0443\u0436\u0435 \u043d\u0430\u0448\u043b\u0438, \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \u0434\u043b\u044f \u0421++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u043b\u044f <code>armv7<\/code>, <code>armv7s<\/code> \u0438 <code>arm64<\/code> \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440, \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0444\u043b\u0430\u0433\u043e\u043c <code>-arch<\/code> \u0434\u043b\u044f <code>clang++<\/code>.<\/p>\n<p>  \u0412\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f ARM \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 <code>SDKs\/iPhoneOS7.0.sdk<\/code> \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>XCODE_ARM_ROOT<\/code>  <\/p>\n<pre><code class=\"bash\">CXX_FLAGS=&quot;-arch armv7 -arch armv7s -arch arm64&quot; SYSTEM_ROOT=${XCODE_ARM_ROOT}\/SDKs\/iPhoneOS7.0.sdk <\/code><\/pre>\n<p>  \u0412\u044b\u0437\u043e\u0432 <code>cmake<\/code> \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c  <\/p>\n<pre><code class=\"bash\">mkdir -p build\/ios cd build\/ios  cmake \\   -DCMAKE_CXX_COMPILER=$CXX_COMPILER \\   -DCMAKE_OSX_SYSROOT=&quot;$SYSTEM_ROOT&quot; \\   -DCMAKE_C_COMPILER=$C_COMPILER \\   -DCMAKE_CXX_FLAGS=&quot;$CXX_FLAGS&quot; \\   -G &quot;Unix Makefiles&quot; \\   ..\/..\/src\/Shark <\/code><\/pre>\n<blockquote><p>\u041a\u0441\u0442\u0430\u0442\u0438, <code>cmake<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u0437\u0430 \u043d\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u041d\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e C \u0438 C++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b, <code>cmake<\/code> \u0436\u0435 \u043d\u0430\u0439\u0434\u0435\u0442 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0438\u0437 \u0442\u043e\u0433\u043e \u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>ranlib<\/code>, <code>lipo<\/code>, <code>ld<\/code> \u0438 \u0442.\u0434.<\/p><\/blockquote>\n<p>  <b>iOS \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 (iPhone Simulator SDK)<\/b><br \/>  \u0422\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b.<\/p>\n<p>  \u041d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 <code>i386<\/code> \u0438 <code>x86_64<\/code>, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441 64-\u0431\u0438\u0442\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u00abiPhone Retina (4-inch 64-bit)\u00bb.<\/p>\n<p>  \u041d\u0443\u0436\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u2014 \u0432 <code>${XCODE_SIM_ROOT}\/SDKs\/iPhoneSimulator7.0.sdk<\/code>.<\/p>\n<p>  \u0418 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0434 \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \u0430 \u043d\u0435 OS X \u0441 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043d\u0443\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 <code>-mios-simulator-version-min=7.0<\/code><\/p>\n<pre><code class=\"bash\">mkdir -p build\/sim cd build\/sim  CXX_FLAGS=&quot;-arch i386 -arch x86_64 -mios-simulator-version-min=7.0&quot; SYSTEM_ROOT=${XCODE_SIM_ROOT}\/SDKs\/iPhoneSimulator7.0.sdk  cmake \\   -DCMAKE_CXX_COMPILER=$CXX_COMPILER \\   -DCMAKE_OSX_SYSROOT=&quot;$SYSTEM_ROOT&quot; \\   -DCMAKE_C_COMPILER=$C_COMPILER \\   -DCMAKE_CXX_FLAGS=&quot;$CXX_FLAGS&quot; \\   -G &quot;Unix Makefiles&quot; \\   ..\/..\/src\/Shark <\/code><\/pre>\n<p>  <b>Mac OS X<\/b><br \/>  \u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 Mac OS X.<br \/>  \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0421 \u0438 \u0421++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 <code>cmake<\/code> \u043d\u0430\u0439\u0434\u0435\u0442 \u0441\u0430\u043c.  <\/p>\n<pre><code class=\"bash\">mkdir -p build\/osx cd build\/osx  cmake \\   -DCMAKE_CXX_COMPILER=$CXX_COMPILER \\   -DCMAKE_C_COMPILER=$C_COMPILER \\   -G &quot;Unix Makefiles&quot; \\   ..\/..\/src\/Shark <\/code><\/pre>\n<h6>\u0425\u0438\u0442\u0440\u043e\u0441\u0442\u0438 <code>cmake<\/code><\/h6>\n<p>  \u041d\u0443 \u0442\u0435\u043f\u0435\u0440\u044c-\u0442\u043e \u0443\u0436 \u0434\u0430\u0432\u0430\u0439 <code>make<\/code>!, \u2014 \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u0432\u044b, \u043d\u043e \u043d\u0435\u0442.<br \/>  \u0423 <code>cmake<\/code> \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0447\u0435\u0441\u0442\u044c.<\/p>\n<p>  <b>\u0422\u0435\u0441\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432<\/b><br \/>  \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u0440\u0438 \u0441\u0430\u043c\u043e\u043c \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 <code>cmake<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0435\u0441\u0442 \u0434\u043b\u044f C \u0438 \u0421++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u041a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, clang \u0438 clang++ \u044d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u044e\u0442 \u0434\u043b\u044f iOS \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. \u0412 \u0438\u043d\u0442\u0435\u0440\u0435\u043d\u0435\u0442\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u043a\u0430\u043a \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>CMakeLists.txt<\/code> \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <code>NONE<\/code> \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u043e \u043c\u043d\u0435 \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e.  <\/p>\n<pre><code class=\"cmake\">PROJECT( shark NONE ) <\/code><\/pre>\n<p>  \u0421\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <code>cmake<\/code> \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f clang \u0438 clang++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0446\u0438\u0439. <code>cmake<\/code> \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043b <code>CMakeCache.txt<\/code> \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>CMakeFiles<\/code>. \u0415\u0441\u043b\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <code>cmake<\/code> \u0443\u0436\u0435 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u0442\u0435\u0441\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>  <b>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438<\/b><br \/>  \u0418\u0442\u043e\u0433\u043e, <code>cmake<\/code> \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2 \u0440\u0430\u0437\u0430, \u2014 \u043e\u043f\u044f\u0442\u044c \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u0432\u044b.<br \/>  \u0418 \u043e\u043f\u044f\u0442\u044c \u2014 \u043d\u0435\u0442.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0431\u044b\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b \u0432\u0430\u0436\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a C \u0438 \u0421++ \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u0432\u0441\u0442\u0443\u043f\u044f\u0442 \u0432 \u0441\u0438\u043b\u0443 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435. <code>cmake<\/code> \u043a\u0430\u043a \u0431\u044b \u0432\u044b\u0434\u0430\u0441\u0442 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u0443\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0435\u0449\u0435 \u0440\u0430\u0437. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 <code>cmake<\/code> \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u0441\u043a\u0430\u0436\u0435\u0442, \u0430 \u0432\u043e\u0442 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <code>ccmake<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. <code>ccmake<\/code> \u044d\u0442\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f <code>cmake<\/code>.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c  <\/p>\n<ul>\n<li>\u0420\u0430\u0437 <code>cmake<\/code>, \u0431\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0439\u0442\u0438 \u0442\u0435\u0441\u0442<\/li>\n<li>\u0414\u0432\u0430 <code>cmake<\/code>, \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438<\/li>\n<li>\u0422\u0440\u0438 <code>cmake<\/code>, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0432 \u0441\u0438\u043b\u0443<\/li>\n<\/ul>\n<h6>make<\/h6>\n<p>  \u0414\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0432\u0435\u0442\u043d\u044b\u0439 <code>make<\/code>. \u0427\u0442\u043e\u0431\u044b \u0434\u0435\u043b\u043e \u043f\u043e\u0448\u043b\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 <code>-j<\/code>.  <\/p>\n<pre><code class=\"bash\">make -j16 <\/code><\/pre>\n<p>  \u041c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435 \u0437\u0430\u0439\u043c\u0435\u0442, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0443 \u043d\u0430\u0441 \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <code>libshark.a<\/code>. \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u043f\u043e\u0436\u0430\u0440\u043d\u044b\u0439, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b <code>file<\/code> \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0436\u0438\u0440\u043d\u043e\u0441\u0442\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">$ 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 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h5>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u00ab\u0442\u043e\u043b\u0441\u0442\u0443\u044e\u00bb \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443<\/h5>\n<p>  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u0443 \u00ab\u0442\u043e\u043b\u0441\u0442\u0443\u044e\u00bb \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443. <\/p>\n<p>  \u0422\u0443\u0442 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0441 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <code>lipo<\/code>  <\/p>\n<pre><code class=\"bash\">mkdir -p lib\/ios $XCODE_TOOLCHAIN_BIN\/lipo -create build\/ios\/libshark.a build\/sim\/libshark.a -o lib\/ios\/libshark.a <\/code><\/pre>\n<p>  \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 (<code>file lib\/ios\/libshark.a<\/code>), \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0447\u0442\u043e \u0432\u0441\u0435 5 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435.<\/p>\n<h5>\u0423\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0432 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a<\/h5>\n<p>  \u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432 \u0432\u0438\u0434\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430. \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u00ab\u0431\u0430\u043d\u0434\u043b\u00bb (bundle).<\/p>\n<h6>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0431\u0430\u043d\u0434\u043b<\/h6>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>Shark.framework<\/code> \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0430\u043f\u043e\u043a \u0432\u043d\u0443\u0442\u0440\u0438, \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e <code>mkdir<\/code> \u0438 <code>ln<\/code>.  <\/p>\n<pre><code class=\"bash\">Shark.framework\/ \u251c\u2500\u2500 Documentation -&gt; Versions\/Current\/Documentation \u251c\u2500\u2500 Headers -&gt; Versions\/Current\/Headers \u251c\u2500\u2500 Resources -&gt; Versions\/Current\/Resources \u2514\u2500\u2500 Versions     \u251c\u2500\u2500 A     \u2502   \u251c\u2500\u2500 Documentation     \u2502   \u251c\u2500\u2500 Headers     \u2502   \u2514\u2500\u2500 Resources     \u2514\u2500\u2500 Current -&gt; A <\/code><\/pre>\n<h6>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443<\/h6>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432\u043d\u0443\u0442\u0440\u044c \u0431\u0430\u043d\u0434\u043b\u0430, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u0435\u0435 \u0432 <code>Shark<\/code>.  <\/p>\n<pre><code class=\"bash\">cp build\/ios\/libshark.a Shark.framework\/Versions\/A\/Shark <\/code><\/pre>\n<h6>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b<\/h6>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0432\u0441\u0435 <code>.h<\/code> \u0444\u0430\u0439\u043b\u044b \u0438\u0437 <code>src\/Shark\/include<\/code> \u0432 <code>Headers<\/code> \u043f\u0430\u043f\u043a\u0443 \u0432\u043d\u0443\u0442\u0438 \u0431\u0430\u043d\u0434\u043b\u0430. \u0417\u0430\u0442\u0435\u043c \u0443\u0434\u0430\u043b\u0438\u043c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0439 <code>statistics.h<\/code>. \u041d\u0435 \u043d\u0443\u0436\u0435\u043d \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 <code>INSTALL<\/code> \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0444\u0430\u0439\u043be <code>CMakeLists.txt<\/code>.  <\/p>\n<pre><code class=\"bash\">cp -r src\/Shark\/include\/* Shark.framework\/Headers\/ rm Shark.framework\/Headers\/statistics.h <\/code><\/pre>\n<p>  <b>\u041f\u0430\u0442\u0447\u0438\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b<\/b><br \/>  \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0445\u0435\u0434\u0435\u0440\u044b \u0438 \u0432\u0441\u0435, \u043d\u043e \u043e\u043f\u044f\u0442\u044c \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e. \u0415\u0441\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0432\u044b\u0441\u043a\u043e\u0447\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u0443\u0442\u044f\u043c\u0438 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c. \u0418 \u0435\u0441\u043b\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u043f\u043e\u0434 OS X \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Header Search Path, \u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u043c \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>  \u0420\u0430\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Shark \u043d\u0435 \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u0438\u043b\u0438\u0441\u044c \u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0443\u0442\u044f\u0445 \u0434\u043b\u044f <code>#include<\/code> \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432, \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u0443 \u0437\u0430 \u043d\u0438\u0445.<\/p>\n<p>  \u0412 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430, \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0441\u0432\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440 \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 boost. \u0412\u0441\u0435 \u043f\u0443\u0442\u0438 \u0432 <code>#include<\/code> \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430\u0445 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 boost \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 <code>boost\/<\/code>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440<\/p>\n<pre><code class=\"cpp\">#include &quot;boost\/config.hpp&quot; #include &lt;boost\/type_traits\/remove_reference.hpp&gt; <\/code><\/pre>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 <code>sed<\/code> \u0438 \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u043c \u0444\u0430\u0439\u043b\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 <code>#include<\/code> \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432  <\/p>\n<ul>\n<li>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0431\u0435\u043b \u0432 &quot;#include&lt;something&gt;&quot; \u0438 &quot;#include\u00absomething\u00bb&quot; (\u0434\u0430, \u0431\u044b\u043b\u0438 \u0438 \u0442\u0430\u043a\u0438\u0435)<\/li>\n<li>\u0417\u0430\u043c\u0435\u043d\u0438\u043c <code>SharkDefs.h<\/code>, \u043d\u0430 <code>Shark\/SharkDefs.h<\/code><\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u0438\u043c <code>Shark\/<\/code> \u0432 \u043f\u0443\u0442\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0437\u0434\u0435\u0441\u044c \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0432\u0432\u0438\u0434\u0443 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043f\u0430\u043f\u043a\u0438 <code>Headers<\/code>, \u0442.e. <code>Array, Rng, LinAlg, FileUtil, EALib, MOO-EALib, ReClaM, Mixture, TimeSeries, Fuzzy<\/code>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0430\u0442\u0447\u0438\u043c .h \u0444\u0430\u0439\u043b\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"># \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a \u0442\u0438\u043f\u0430 &quot;invalid character sequence&quot; export LC_TYPE=C export LANG=C  # \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 #include \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430\u0445 # \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0442\u044c \u0434\u043b\u044f SharkDefs.h # \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0442\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 # \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c -E \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 &quot;gnu vs non-gnu sed&quot; components=&quot;Array|Rng|LinAlg|FileUtil|EALib|MOO-EALib|ReClaM|Mixture|TimeSeries|Fuzzy&quot; find Shark.framework\/Headers -type f -exec \\     sed -E -i '' \\     -e &quot;s,#include([&lt;\\&quot;]),#include \\1,g&quot; \\     -e &quot;s,#include([ \\t])([&lt;\\&quot;])(SharkDefs.h),#include\\1\\2Shark\/\\3,g&quot; \\     -e &quot;s,#include([ \\t])([&lt;\\&quot;])(${components}\/),#include\\1\\2Shark\/\\3,g&quot; \\     {} + <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h6>\u0421\u043e\u0437\u0434\u0430\u0435\u043c Info.plist<\/h6>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u0442\u0430\u043f \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 Info.plist. \u0412\u0430\u0436\u043d\u044b\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u044f \u0438 \u0432\u0435\u0440\u0441\u0438\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0437\u0434\u0430\u0442\u044c Info.plist<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">FRAMEWORK_NAME=Shark FRAMEWORK_CURRENT_VERSION=2.3.4  cat &gt; Shark.framework\/Resources\/Info.plist &lt;&lt;EOF &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;!DOCTYPE plist PUBLIC &quot;-\/\/Apple\/\/DTD PLIST 1.0\/\/EN&quot; &quot;http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd&quot;&gt; &lt;plist version=&quot;1.0&quot;&gt; &lt;dict&gt;     &lt;key&gt;CFBundleDevelopmentRegion&lt;\/key&gt;     &lt;string&gt;English&lt;\/string&gt;     &lt;key&gt;CFBundleExecutable&lt;\/key&gt;     &lt;string&gt;${FRAMEWORK_NAME}&lt;\/string&gt;     &lt;key&gt;CFBundleIdentifier&lt;\/key&gt;     &lt;string&gt;dk.diku.image&lt;\/string&gt;     &lt;key&gt;CFBundleInfoDictionaryVersion&lt;\/key&gt;     &lt;string&gt;6.0&lt;\/string&gt;     &lt;key&gt;CFBundlePackageType&lt;\/key&gt;     &lt;string&gt;FMWK&lt;\/string&gt;     &lt;key&gt;CFBundleSignature&lt;\/key&gt;     &lt;string&gt;????&lt;\/string&gt;     &lt;key&gt;CFBundleVersion&lt;\/key&gt;     &lt;string&gt;${FRAMEWORK_CURRENT_VERSION}&lt;\/string&gt; &lt;\/dict&gt; &lt;\/plist&gt; EOF <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<blockquote><p>\u0414\u043e \u0432\u044b\u0445\u043e\u0434\u0430 iOS 7, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 <code>arm64<\/code>, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432, \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f iOS \u0438 OSX, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440. \u041d\u0438\u0447\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u043b\u043e \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c <code>armv6, armv7, armv7s, i386<\/code> \u0438 <code>x86_64<\/code> \u0432 \u043e\u0434\u043d\u0443 \u0436\u0438\u0440\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 64-\u0431\u0438\u0442\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 \u0441\u043f\u0443\u0442\u0430\u043b\u0438 \u0432\u0441\u0435 \u043a\u0430\u0440\u0442\u044b. \u0412 \u00ab\u0442\u043e\u043b\u0441\u0442\u043e\u0439\u00bb \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0432\u0430 \u0441\u043b\u043e\u044f \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0445\u0430\u0442\u044c <code>x86_64<\/code> \u0434\u043b\u044f iOS \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 64-\u0431\u0438\u0442\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 <code>x86_64<\/code> \u0434\u043b\u044f OS X.<\/p><\/blockquote>\n<h5>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0430 CocoaPods<\/h5>\n<p>  \u0423\u0436\u0435 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u043d\u043e \u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0438 \u0441\u043c\u0435\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u0432 \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u0442\u043e\u0436\u0435. \u041a\u0430\u043a \u0440\u0430\u0437 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438 \u043d\u0443\u0436\u043d\u044b <a href=\"http:\/\/cocoapods.org\">CocoaPods<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043e\u0442\u0441\u0442\u0430\u043b\u0438 \u043e\u0442 \u043f\u043e\u0435\u0437\u0434\u0430 \u0438 \u0435\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 CocoaPods, \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0430 \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043b \u043a\u0430\u0436\u0434\u0443\u044e \u043c\u0435\u043b\u043e\u0447\u044c \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0437\u0434\u0435\u0441\u044c \u044f \u0441\u043e\u0448\u043b\u044e\u0441\u044c \u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Shark-SDK.podspec<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"ruby\">Pod::Spec.new do |s|   s.name = 'Shark-SDK'   s.version = '2.3.4'   s.license = { :type =&gt; 'GPLv2', :text =&gt; 'See https:\/\/sourceforge.net\/directory\/license:gpl\/' }   s.summary = 'iOS & OS X framework for Shark: C++ Machine Learning Library'   s.description = &lt;&lt;-DESC                       SHARK provides libraries for the design of adaptive systems, including methods for linear and nonlinear optimization (e.g., 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' =&gt; 'https:\/\/sourceforge.net\/u\/shark-admin\/profile\/' }    s.source = { :http =&gt; 'https:\/\/github.com\/mgrebenets\/shark2-iosx\/releases\/download\/v2.3.4\/Shark-SDK.tgz', :type =&gt; :tgz }    s.ios.vendored_frameworks = &quot;Shark-iOS-SDK\/Shark.framework&quot;   s.osx.vendored_frameworks = &quot;Shark-OSX-SDK\/Shark.framework&quot;    s.ios.deployment_target = '6.0'   s.osx.deployment_target = '10.7' end <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Podfile<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"ruby\"># Podfile platform :ios, :deployment_target =&gt; '6.0' pod 'Shark-SDK'  target :'shark2-osx-demo', :exclusive =&gt; true do     platform :osx, :deployment_target =&gt; '10.7'     pod 'Shark-SDK' end <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h4>\u0418\u0442\u043e\u0433\u0438<\/h4>\n<p>  \u0418\u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0434\u0440\u0443\u0433 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u0441\u0430\u043c\u0438 \u0441\u0435\u0431\u0435 \u043a\u0430\u043a\u0443\u044e-\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d, \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0439\u0442\u0435\u0441\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0437\u043d\u0430\u0435\u0448\u044c \u043a\u0430\u043a\u0438\u0435 \u043d\u043e\u0432\u044b\u0435 \u0441\u043a\u0438\u043b\u044b \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u0442\u044c.    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/208052\/\"> http:\/\/habrahabr.ru\/post\/208052\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/586\/8e7\/df7\/5868e7df70116af2c59bee3ab3904a4c.png\" alt=\"image\"\/><br \/>  \u0414\u0430, \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d \u0441\u043c\u044b\u0441\u043b\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439, \u0434\u043b\u044f \u0442\u0435\u0445 \u043a\u0442\u043e \u0435\u0449\u0435 \u0434\u0443\u043c\u0430\u0435\u0442 \u00ab\u0438\u0434\u0442\u0438 \u043f\u043e\u0434 \u0442\u0430\u043a \u0438\u043b\u0438 \u043d\u0435\u0442?\u00bb.<\/p>\n<p>  <a href=\"https:\/\/sourceforge.net\/projects\/shark-project\/\">Shark<\/a> \u2014 \u043d\u0430\u0431\u043e\u0440 \u0421++ \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f (Machine Learning), \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0438 \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c \u0438 \u0431\u0435\u0437, \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435. \u0411\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/sourceforge.net\/projects\/shark-project\/\">\u0441\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b  <\/p>\n<ul>\n<li>\u041a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f iOS?<\/li>\n<li>\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f iOS?<\/li>\n<li>\u041a\u0430\u043a \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c iOS \u0438 OSX \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0447\u0435\u0440\u0435\u0437 CocoaPods?<\/li>\n<\/ul>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-208052","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/208052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=208052"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/208052\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=208052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=208052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=208052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}