{"id":297752,"date":"2020-01-27T15:00:23","date_gmt":"2020-01-27T15:00:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=297752"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=297752","title":{"rendered":"\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Qt \u0432 WebAssembly \u0432 Windows"},"content":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/485610\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2v\/ru\/wl\/2vruwlzn5xvqonnbrju4xfdatfs.png\"><\/p>\n<p>  \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 Qt, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/doc.qt.io\/qt-5\/supported-platforms.html\">\u043a\u0440\u043e\u0441\u0441 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u043c\u0438 <\/a>\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u043e\u0442 <a href=\"https:\/\/www.qt.io\/use-cases#platform\">desktop, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445, \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u0435\u0449\u0435\u0439<\/a>, \u0434\u043e <a href=\"https:\/\/www.qt.io\/blog\/2019\/08\/21\/announcing-qt-mcus\">\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432<\/a>.<\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u044d\u0442\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Qt \u0432 WebAssembly \u2014 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0412\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 wasm.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043b\u0435\u0433\u0447\u0435 \u0431\u044b\u043b\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0434\u0435\u043f\u043b\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Qt \u0432 WebAssmbly \u043f\u043e\u0434 Windows \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435.<a name=\"habracut\"><\/a><\/p>\n<p>  \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f Qt 5.13.2 \u0438 \u044f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 Windows \u0441\u0440\u0435\u0434\u0430 Qt \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430, \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f Desktop \u043e\u043d \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442.<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 MaintenanceTool.exe \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00ab\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432\u00bb \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u0443 WebAssembly \u0438 \u0436\u0434\u0451\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ed\/s9\/sa\/eds9saafk20p2aq8icyhkz567fa.png\"><\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0443\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 Qt Creator (Qt Stack-view) \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0433\u043e.<\/p>\n<p>  \u0418\u0434\u0435\u043c \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Qt <a href=\"https:\/\/doc.qt.io\/qt-5\/wasm.html\">WASM<\/a>.<\/p>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u044c esmdk. \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c <a href=\"https:\/\/github.com\/emscripten-core\/emscripten\">emscripten<\/a> \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 c:\\wasm<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 (\u043f\u0443\u0441\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c cmd) \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e:<\/p>\n<pre><code class=\"plaintext\">cd c:\\emsdk emsdk.bat install sdk-fastcomp-1.38.27-64bit<\/code><\/pre>\n<p>  \u0423 \u043d\u0430\u0441 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u0418 \u043a\u0443\u0440\u0441\u043e\u0440 \u0443\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435. \u0427\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0441\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043f\u043e\u0447\u0435\u043c\u0443? \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u0431\u043b\u043e\u043a\u043d\u043e\u0442\u043e\u043c \u0438 \u0432\u0438\u0434\u0438\u043c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zf\/em\/7g\/zfem7g3qowujeln8bnqprb3g2uu.png\"><\/p>\n<p>  \u041d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043f\u0438\u0442\u043e\u043d? \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c? \u041f\u0438\u0448\u0435\u043c \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435<\/p>\n<pre><code class=\"plaintext\">c:\\emsdk&gt;python --version &quot;python&quot; \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c.<\/code><\/pre>\n<p>  \u041d\u0443 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u0435\u0449\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Python. <a href=\"https:\/\/www.python.org\/downloads\/windows\/\">\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c<\/a> \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e. \u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u0433\u043e\u0432\u043a\u0435 \u00abAdd Python 3.8 to PATH\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zh\/sq\/dg\/zhsqdg097xt83hk9pd9bjycvjia.png\"><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043d\u043e\u0432\u0430 CMD. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code class=\"plaintext\">c:\\emsdk&gt;python --version Python 3.8.1 <\/code><\/pre>\n<p>  \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c emsdk \u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438:<\/p>\n<pre><code class=\"plaintext\">emsdk.bat install sdk-fastcomp-1.38.27-64bit emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit<\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code class=\"plaintext\">em++<\/code><\/pre>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0433\u043e\u0442\u043e\u0432. \u041f\u043e\u0440\u0430 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0441\u0431\u043e\u0440\u043a\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443, \u0433\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Qt wasm: \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 C:\\Qt\\5.13.2\\wasm_32<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 Mingw: \u041f\u0443\u0441\u043a mingw \u2014 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c Qt 5.13.2 (MinGW 7.3.0 32-bit)<\/p>\n<p>  \u0412 \u043d\u0435\u0439 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 emsdk: <\/p>\n<pre><code class=\"plaintext\">c:\\emsdk\\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit<\/code><\/pre>\n<p>  \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">cd c:\\Project\\test-wasm qmake &quot;qmake&quot; \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c.<\/code><\/pre>\n<p>  \u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a? \u042f \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438? \u0417\u0430\u043a\u0440\u043e\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0441\u043d\u043e\u0432\u0430 \u0435\u0451 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c: \u041f\u0443\u0441\u043a mingw \u2014 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c Qt 5.13.2 (MinGW 7.3.0 32-bit) \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e qmake \u0435\u0441\u0442\u044c \u0443 \u043d\u0430\u0441:<\/p>\n<pre><code class=\"plaintext\">Setting up environment for Qt usage...  C:\\Qt\\5.13.2\\mingw73_32&gt;qmake --version QMake version 3.1 Using Qt version 5.13.2 in C:\/Qt\/5.13.2\/mingw73_32\/lib<\/code><\/pre>\n<p>  \u0412\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 Qt \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0438 qmake \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e. \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043d\u043e\u0432\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c emsdk \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0443 \u0436\u0435 \u0441\u0430\u043c\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443.<\/p>\n<p>  \u041d\u0443 \u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u044f, \u043c\u043e\u0436\u043d\u043e \u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0440\u0443\u0433\u043e\u043c\u0443: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c emsdk, \u0430 \u043f\u043e\u0442\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 mingw \u2014 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u044f\u0440\u043b\u044b\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0441 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435\u043c mingw32 (\u043f\u0443\u0441\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c mingw \u2014 \u043f\u0440\u0430\u0432\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u2014 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u043d\u0430 \u00abQt 5.13.2 (MinGW 7.3.0 32-bit)\u00bb \u2014 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9s\/5p\/j2\/9s5pj2xg81ww4yavpaocmchv1ti.png\"><\/p>\n<p>  \u0412 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043f\u0443\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 bat \u0444\u0430\u0439\u043b\u0430. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e C:\\Qt\\5.13.2\\mingw73_32\\bin\\qtenv2.bat<\/p>\n<p>  \u0418\u0442\u0430\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0432\u0441\u0451 \u0441\u043d\u0430\u0447\u0430\u043b\u0430. \u041f\u0443\u0441\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c cmd<\/p>\n<pre><code class=\"plaintext\">c:\\emsdk\\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit C:\\Qt\\5.13.2\\mingw73_32\\bin\\qtenv2.bat qmake --version<\/code><\/pre>\n<p>  \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u2026 \u0438\u0434\u0451\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/p>\n<pre><code class=\"plaintext\">qmake make &quot;make&quot; \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c.<\/code><\/pre>\n<p>  \u0412\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c mingw \u0438 \u0432 \u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u0440\u0443\u0433\u0430\u044f:<br \/>  <b>mingw32-make.exe<\/b><\/p>\n<pre><code class=\"plaintext\">mingw32-make<\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0431\u0440\u0430\u043b\u043e\u0441\u044c, \u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e:<\/p>\n<pre><code class=\"plaintext\">g++ -Wl,-s -Wl,-subsystem,windows -mthreads -o release\\test-wasm.exe release\/main.o release\/qrc_qml.o  C:\\Qt\\5.13.2\\mingw73_32\\lib\\libQt5Quick.a C:\\Qt\\5.13.2\\mingw73_32\\lib\\libQt5Gui.a C:\\Qt\\5.13.2\\mingw73_32\\lib\\libQt5Qml.a C:\\Qt\\5.13.2\\mingw73_32\\lib\\libQt5Network.a C:\\Qt\\5.13.2\\mingw73_32\\lib\\libQt5Core.a  -lmingw32 C:\\Qt\\5.13.2\\mingw73_32\\lib\\libqtmain.a -LC:\\openssl\\lib -LC:\\Utils\\my_sql\\mysql-5.7.25-win32\\lib -LC:\\Utils\\postgresql\\pgsql\\lib -lshell32 mingw32-make.exe[1]: Leaving directory 'c:\/Project\/test-wasm'<\/code><\/pre>\n<p>  \u0422\u0430\u043a. \u0421\u0442\u043e\u043f? \u0427\u0442\u043e \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438?<\/p>\n<p>  <b>\u041c\u044b<\/b> \u0436\u0435 <b>\u0441\u043e\u0431\u0440\u0430\u043b\u0438<\/b> \u043e\u0431\u044b\u0447\u043d\u043e\u0435 32 \u0431\u0438\u0442\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <b>desktop<\/b> (x86) \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u0431\u043e\u0440\u043a\u0430 <u>C:\\Qt\\5.13.2\\mingw73_32<\/u><\/p>\n<p>  \u0410 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c WASM. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 PATH, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0431\u0440\u0430\u043b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0443\u0442\u044c \u0438 qmake \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 wasm:<\/p>\n<pre><code class=\"plaintext\">set PATH=c:\\Qt\\5.13.2\\wasm_32\\bin;%PATH%<\/code><\/pre>\n<p>  \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 \u043e\u0442 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<pre><code class=\"plaintext\">mingw32-make.exe clean del .qmake.stash<\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443<\/p>\n<pre><code class=\"plaintext\">qmake<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cz\/nx\/3s\/cznx3sfjy_1b4svadrdfr2uac9m.png\"><\/p>\n<p>  \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435? \u041e\u043f\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430? \u0427\u0442\u043e \u0437\u0430 dll \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0435 \u043f\u043e\u0438\u0449\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0435, \u0433\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Qt:<br \/>  \u0420\u0430\u0437\u0432\u0435 \u0442\u0430\u043a\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c? 32 \u0431\u0438\u0442\u043d\u044b\u0439 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 WASM (c:\\Qt\\5.13.2\\wasm_32\\bin) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043e\u0442 64 \u0431\u0438\u0442\u043d\u043e\u0433\u043e MINGW?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kd\/k_\/my\/kdk_mydgdcxxqogigkfjbt157wo.png\"><\/p>\n<p>  \u041d\u0443 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u043e\u0436\u043d\u043e \u0438 \u0440\u0438\u0441\u043a\u043d\u0443\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0442\u044c \u0434\u043e \u044d\u0442\u043e\u0439 64 \u0431\u0438\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438:<\/p>\n<pre><code class=\"plaintext\">set PATH=c:\\qt\\5.13.2\\mingw73_64\\bin;%PATH% mingw32-make.exe clean qmake mingw32-make.exe <\/code><\/pre>\n<p>  \u0438\u2026 \u043a\u0443\u0447\u0430 \u043e\u0448\u0438\u0431\u043e\u043a<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">release\/main.o:main.cpp:(.text+0x1bc): undefined reference to `_imp___ZN4QUrlD1Ev' release\/main.o:main.cpp:(.text+0x1c6): undefined reference to `_imp___ZN11QMetaObject10ConnectionD1Ev' release\/main.o:main.cpp:(.text+0x1d7): undefined reference to `_imp___ZN21QQmlApplicationEngine4loadERK4QUrl' release\/main.o:main.cpp:(.text+0x1e0): undefined reference to `_imp___ZN15QGuiApplication4execEv' release\/main.o:main.cpp:(.text+0x1ef): undefined reference to `_imp___ZN21QQmlApplicationEngineD1Ev' release\/main.o:main.cpp:(.text+0x1f8): undefined reference to `_imp___ZN15QGuiApplicationD1Ev' release\/main.o:main.cpp:(.text+0x225): undefined reference to `_imp___ZN10QArrayData10deallocateEPS_jj' release\/main.o:main.cpp:(.text+0x249): undefined reference to `_imp___ZN21QQmlApplicationEngineD1Ev' release\/main.o:main.cpp:(.text+0x252): undefined reference to `_imp___ZN15QGuiApplicationD1Ev' release\/main.o:main.cpp:(.text+0x276): undefined reference to `_imp___ZN10QArrayData10deallocateEPS_jj' release\/main.o:main.cpp:(.text+0x28f): undefined reference to `_imp___ZN4QUrlD1Ev' release\/main.o:main.cpp:(.text+0x2aa): undefined reference to `_imp___ZN4QUrlD1Ev' release\/qrc_qml.o:qrc_qml.cpp:(.text+0x23): undefined reference to `qUnregisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)' release\/qrc_qml.o:qrc_qml.cpp:(.text+0x53): undefined reference to `qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)' release\/qrc_qml.o:qrc_qml.cpp:(.text+0x83): undefined reference to `qUnregisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)' release\/qrc_qml.o:qrc_qml.cpp:(.text.startup+0x23): undefined reference to `qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)'<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"plaintext\">C:\/Qt\/Tools\/mingw730_32\/bin\/..\/lib\/gcc\/i686-w64-mingw32\/7.3.0\/..\/..\/..\/..\/i686-w64-mingw32\/lib\/..\/lib\/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16' collect2.exe: error: ld returned 1 exit status mingw32-make[1]: *** [Makefile.Release:66: release\/test-wasm.exe] Error 1 mingw32-make[1]: Leaving directory 'c:\/Project\/test-wasm' mingw32-make: *** [Makefile:38: release] Error 2 <\/code><\/pre>\n<p>  \u041f\u043e\u0447\u0435\u043c\u0443 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0448\u0438\u0431\u043e\u043a? \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0441\u043e\u0431\u0440\u0430\u043b\u043e\u0441\u044c? \u042f \u0436\u0435 \u043f\u043e\u0447\u0438\u0441\u0442\u0438\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0441\u0431\u043e\u0440\u043a\u0443, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e error.<\/p>\n<p>  \u0422\u0430\u043a, \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c, \u043d\u0430\u043b\u0438\u0442\u044c \u0447\u0430\u0448\u043a\u0443 \u0447\u0430\u044f\/\u043a\u043e\u0444\u0435\u2026<\/p>\n<p>  \u0422\u043e\u0447\u043d\u043e! \u0418\u0434\u0435\u044f! \u0422.\u043a. \u0432\u0438\u0434\u0438\u043c\u043e \u043c\u044b \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u043f\u0443\u0442\u044c \u043a 64 \u0431\u0438\u0442\u043d\u044b\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c, \u0442\u043e \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 32 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0433\u043e WASM \u043e\u043d \u043d\u0435 \u043f\u043e\u043d\u044f\u043b, \u043a\u0430\u043a \u0438 \u0447\u0442\u043e \u043b\u0438\u043d\u043a\u043e\u0432\u0430\u0442\u044c, \u0438 \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u043a 64 \u0431\u0438\u0442\u043d\u044b\u043c lib, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u043d\u0435 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0434\u043e 32 \u0431\u0438\u0442\u043d\u044b\u0445 lib \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0434\u043e 64 \u0431\u0438\u0442\u043d\u044b\u0445. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c:<\/p>\n<p>  \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0441\u043e\u043b\u044c. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u043d\u043e\u0432\u0430 mingw 32-bit \u0438 \u0442\u0443\u0442 \u043c\u0435\u043d\u044f \u043f\u043e\u0441\u0435\u0449\u0430\u0435\u0442 \u043c\u044b\u0441\u043b\u044c: \u0442.\u043a. \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0443\u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u044f mingw 32 \u0431\u0438\u0442, \u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0432 \u043f\u0443\u0442\u044c \u0434\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043d\u0430 64 \u0431\u0438\u0442\u043d\u044b\u0435, \u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043d\u0430 64 \u0431\u0438\u0442\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b Desktop \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f Qt, \u0430 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043d\u0430\u043e\u0431\u0440\u043e\u0442 (\u0442.\u043a. \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f PATH \u0434\u043e 64 \u0431\u0438\u0442\u043d\u044b\u0445, \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e 32 \u0438\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a). \u041d\u0443 \u0442\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<pre><code class=\"plaintext\">cmd c:\\emsdk\\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit  set PATH=c:\\qt\\5.13.2\\mingw73_64\\bin;%PATH% qmake --version QMake version 3.1 Using Qt version 5.13.2 in C:\/qt\/5.13.2\/mingw73_64\/lib<\/code><\/pre>\n<p>  \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0442\u044c \u0434\u043e wasm \u0438 \u0438\u0434\u0451\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">set PATH=c:\\Qt\\5.13.2\\wasm_32\\bin;%PATH% cd c:\\Project\\test-wasm  c:\\Project\\test-wasm&gt;qmake --version QMake version 3.1 Using Qt version 5.13.2 in C:\/Qt\/5.13.2\/wasm_32\/lib qmake mingw32-make &quot;mingw32-make&quot; \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c.<\/code><\/pre>\n<p>  \u041e\u043f\u044f\u0442\u044c 25! \u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u0442\u043e \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0442\u0430\u043a? \u0413\u0434\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b? \u041a\u0443\u0434\u0430 \u0434\u0435\u043b\u0441\u044f? \u041f\u043e\u0438\u0441\u043a\u0438 \u0432 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0447\u0442\u043e \u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <u>C:\\Qt\\Tools\\mingw730_32\\bin<\/u><\/p>\n<p>  \u041d\u0443 \u0445\u043e\u0440\u043e\u0448\u043e, mingw32-make.exe \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0447\u043d\u043e \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d:<\/p>\n<pre><code class=\"plaintext\">set PATH=C:\\Qt\\Tools\\mingw730_32\\bin;%PATH%<\/code><\/pre>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">c:\\Project\\test-wasm&gt;mingw32-make c:\\Qt\\5.13.2\\wasm_32\\bin\\qmake.exe -o Makefile test-wasm.pro Info: creating stash file C:\\Project\\test-wasm\\.qmake.stash sed -e s\/@APPNAME@\/test-wasm\/g C:\/Qt\/5.13.2\/wasm_32\/plugins\/platforms\/wasm_shell.html &gt; C:\/Project\/test-wasm\/test-wasm.html &quot;sed&quot; \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c. mingw32-make: *** [Makefile:424: apphtml] Error 1<\/code><\/pre>\n<p>  <b>sed<\/b> ?? \u042d\u0442\u043e \u0436\u0435 \u043d\u0435 Linux, Mac, *nix, *BSD. \u0413\u0434\u0435 \u0435\u0433\u043e \u0432\u0437\u044f\u0442\u044c? \u041f\u043e\u0438\u0449\u0435\u043c (sed.exe)?.. \u0418 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043c.<\/p>\n<p>  \u0411\u0435\u0440\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u0438\u0449\u0435\u043c (sed download windows) \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c, \u0447\u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0434\u043b\u044f <a href=\"http:\/\/gnuwin32.sourceforge.net\/packages\/sed.htm\">Windows<\/a>:<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c binaries Zip, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 bin\/sed.exe \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p1\/bu\/lg\/p1bulgzwobzdf8i6d65rdpqdelc.png\"><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p1\/bu\/lg\/p1bulgzwobzdf8i6d65rdpqdelc.png\"><\/p>\n<p>  \u0414\u0432\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b dll. \u041d\u0430\u043c \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0449\u0435 \u0438 sed \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438\u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 dll? \u041d\u0435\u0442, \u0442\u0430\u043a\u043e\u0433\u043e \u0431\u044b \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0434\u0435\u043b\u0430\u0442\u044c\u2026 \u0415\u0449\u0435 \u0440\u0430\u0437 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0430\u0439\u0442 <a href=\"http:\/\/gnuwin32.sourceforge.net\/packages\/sed.htm\">GNU<\/a> \u0438 \u0432\u0438\u0434\u0438\u043c \u0432 Downloads: <b>\u2022 Complete package, except sources Setup<\/b><\/p>\n<p>  \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c. \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">&quot;c:\\Program Files (x86)\\GnuWin32\\bin\\sed.exe&quot;<\/code><\/pre>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442!!! \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u043d\u043e\u0432\u0430 \u0432 \u043f\u0443\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">set PATH=&quot;c:\\Program Files (x86)\\GnuWin32\\bin&quot;;%PATH% mingw32-make<\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f, \u0441\u0431\u043e\u0440\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c. \u041d\u0443 \u0432\u043e\u0442, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f!<\/p>\n<p>  \u041f\u0440\u043e\u0448\u043b\u043e\u2026 \u043c\u0438\u043d\u0443\u0442<\/p>\n<pre><code class=\"plaintext\">emcc: warning: cannot represent a NaN literal '0x22748a2c570' with custom bit pattern in NaN-canonicalizing JS engines (e.g. Firefox and Safari) without erasing bits!   in   ret double 0x7FF4000000000000 in _ZL7qt_snanv() emcc: warning: cannot represent a NaN literal '0x22748a2c570' with custom bit pattern in NaN-canonicalizing JS engines (e.g. Firefox and Safari) without erasing bits!   in   ret double 0x7FF4000000000000 in _ZL7qt_snanv.30589()  c:\\Project\\test-wasm&gt;dir ... 25.01.2020  17:42             2\u00a0922 test-wasm.html 25.01.2020  17:55           355\u00a0725 test-wasm.js 25.01.2020  14:59               461 test-wasm.js_plugin_import.cpp 25.01.2020  16:23             4\u00a0384 test-wasm.js_plugin_import.obj 25.01.2020  15:49               601 test-wasm.js_qml_plugin_import.cpp 25.01.2020  16:23             4\u00a0668 test-wasm.js_qml_plugin_import.obj 25.01.2020  14:52             1\u00a0099 test-wasm.pro 25.01.2020  15:25            22\u00a0523 test-wasm.pro.user 25.01.2020  17:55        20\u00a0759\u00a0738 test-wasm.wasm <\/code><\/pre>\n<p>  \u0423\u0440\u0430! \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u041d\u0430\u0448\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0431\u0440\u0430\u043b\u043e\u0441\u044c. \u0411\u0438\u043d\u0430\u0440\u044c wasm \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 20 \u041c\u0431. \u041d\u0435 \u043c\u0430\u043b\u043e. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0444\u0430\u0439\u043b \u043d\u0430\u0448 test-wasm.htm \u0438\u2026<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2v\/ru\/wl\/2vruwlzn5xvqonnbrju4xfdatfs.png\"><\/p>\n<h2>\u041f\u043e\u0434\u0432\u0435\u0434\u0443 \u0438\u0442\u043e\u0433\u0438, \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Qt \u0434\u043b\u044f 5.13.2 \u0432 Windows:<\/h2>\n<p>  1. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Python. GNU SED \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 WebAssembly \u0447\u0435\u0440\u0435\u0437 online installed Qt<\/p>\n<p>  2. <\/p>\n<pre><code class=\"plaintext\">c:\\emsdk\\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit set PATH=&quot;c:\\Program Files (x86)\\GnuWin32\\bin&quot;;%PATH% set PATH=c:\\qt\\5.13.2\\mingw73_64\\bin;%PATH% set PATH=C:\\Qt\\Tools\\mingw730_32\\bin;%PATH%<\/code><\/pre>\n<p>  \u041d\u043e \u0425\u0430\u0431\u0440 \u043d\u0435 \u0431\u044b\u043b \u0431\u044b \u0425\u0430\u0431\u0440\u043e\u043c, \u0435\u0441\u043b\u0438 \u0431\u044b \u044f \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b <b>\u0441\u043e\u0431\u0440\u0430\u0442\u044c<\/b> \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <b>WebAssembly<\/b> \u0438 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Qt, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442<b> 5.14.0<\/b>. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043c\u0435\u043d\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u0432\u0435\u0441\u0442, \u043a\u0430\u043a \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 5.13.2.<\/p>\n<p>  \u0427\u0435\u0440\u0435\u0437 \u043e\u043d\u043b\u0430\u0439\u043d \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u0435\u0440 (MaintenanceTool.exe) \u0441\u0442\u0430\u0432\u0438\u043c Qt WebAssembly \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 5.14.0. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443.<\/p>\n<p>  \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u0434\u0451\u0442 \u0438\u2026<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zt\/zh\/b0\/ztzhb07vfti-eekm3krpb5v-u1q.png\"><\/p>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u041a\u0430\u043a \u044d\u0442\u043e? \u0414\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 5.13.2, \u044f \u043f\u043e\u0441\u043b\u0435 \u0442\u0430\u043d\u0446\u0435\u0432 \u0441 \u0431\u0443\u0431\u043d\u043e\u043c, \u0441\u043c\u043e\u0433 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0430 \u0434\u043b\u044f 5.14.0 \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c? \u0410 \u043a\u0430\u043a \u0436\u0435 \u0442\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 (Qt) \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0435\u0433\u043e?<\/p>\n<p>  \u2026 \u0410 \u043c\u044b \u0436\u0435 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0431\u0440\u0430\u0442\u044c WASM Qt 5.14.0 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432? \u0410 \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 \u043d\u0435\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0436\u0451\u0441\u0442\u043a\u043e\u043c \u0434\u0438\u0441\u043a\u0435, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\/\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430:<\/p>\n<pre><code class=\"plaintext\">echo PATH=c:\\qtwasm514\\bin;&quot;C:\\Program Files (x86)\\GnuWin32\\bin&quot;;c:\\qt\\Tools\\mingw730_32\\bin;%PATH% c:\\emsdk\\emsdk.bat activate --embedded sdk-fastcomp-1.38.27-64bit cd c:\\Qt\\5.14.0\\Src configure.bat -no-warnings-are-errors -xplatform wasm-emscripten -platform win32-g++ -nomake examples -prefix c:\\qtwasm <\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d wasm \u0432 \u043f\u0430\u043f\u043a\u0443 c:\\qtwasm, \u0438 \u0435\u0449\u0451 \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b (examples).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">Building on: win32-g++ (i386, CPU features: none) Building for: wasm-emscripten (wasm, CPU features: none) Target compiler: clang 6.0.1 Configuration: cross_compile largefile release c++11 no-pkg-config reduce_exports static stl Build options:   Mode ................................... release   Optimize release build for size ........ no   Building shared libraries .............. no   Using C standard ....................... C11   Using C++ standard ..................... C++11   Using ccache ........................... no   Using precompiled headers .............. no   Using LTCG ............................. no   Target compiler supports:   Build parts ............................ libs Qt modules and options:   Qt Concurrent .......................... no   Qt D-Bus ............................... no   Qt D-Bus directly linked to libdbus .... no   Qt Gui ................................. yes   Qt Network ............................. yes   Qt Sql ................................. no   Qt Testlib ............................. yes   Qt Widgets ............................. yes   Qt Xml ................................. yes Support enabled for:   Using pkg-config ....................... no   udev ................................... no   Using system zlib ...................... no   Zstandard support ...................... no Qt Core:   DoubleConversion ....................... yes     Using system DoubleConversion ........ no   GLib ................................... no   iconv .................................. yes   ICU .................................... no   Built-in copy of the MIME database ..... yes   Tracing backend ........................ none   Logging backends:     journald ............................. no     syslog ............................... no     slog2 ................................ no   Using system PCRE2 ..................... no Qt Network:   getifaddrs() ........................... no   IPv6 ifname ............................ no   libproxy ............................... no   OpenSSL ................................ no     Qt directly linked to OpenSSL ........ no   OpenSSL 1.1 ............................ no   DTLS ................................... no   OCSP-stapling .......................... no   SCTP ................................... no   Use system proxies ..................... yes Qt Gui:   Accessibility .......................... yes   FreeType ............................... yes     Using system FreeType ................ no   HarfBuzz ............................... yes     Using system HarfBuzz ................ no   Fontconfig ............................. no   Image formats:     GIF .................................. yes     ICO .................................. yes     JPEG ................................. yes       Using system libjpeg ............... no     PNG .................................. yes       Using system libpng ................ no   EGL .................................... yes   OpenVG ................................. no   OpenGL:     Desktop OpenGL ....................... no     OpenGL ES 2.0 ........................ yes     OpenGL ES 3.0 ........................ no     OpenGL ES 3.1 ........................ no     OpenGL ES 3.2 ........................ no   Vulkan ................................. no   Session Management ..................... yes Features used by QPA backends:   evdev .................................. no   libinput ............................... no   INTEGRITY HID .......................... no   mtdev .................................. no   tslib .................................. no   xkbcommon .............................. no   X11 specific:     XLib ................................. no     XCB Xlib ............................. no     EGL on X11 ........................... no QPA backends:   DirectFB ............................... no   EGLFS .................................. no   LinuxFB ................................ no   VNC .................................... yes   Mir client ............................. no Qt Sql:   SQL item models ........................ yes Qt Widgets:   GTK+ ................................... no   Styles ................................. Fusion Windows Qt PrintSupport:   CUPS ................................... no Qt Sql Drivers:   DB2 (IBM) .............................. no   InterBase .............................. no   MySql .................................. no   OCI (Oracle) ........................... no   ODBC ................................... no   PostgreSQL ............................. no   SQLite2 ................................ no   SQLite ................................. yes     Using system provided SQLite ......... no   TDS (Sybase) ........................... no Qt Testlib:   Tester for item models ................. yes Qt SerialBus:   Socket CAN ............................. no   Socket CAN FD .......................... no   SerialPort Support ..................... no Further Image Formats:   JasPer ................................. no   MNG .................................... no   TIFF ................................... yes     Using system libtiff ................. no   WEBP ................................... yes     Using system libwebp ................. no Qt QML:   QML network support .................... yes   QML debugging and profiling support .... yes   QML tracing JIT support ................ no   QML sequence object .................... yes   QML list model ......................... yes   QML XML http request ................... yes   QML Locale ............................. yes   QML delegate model ..................... yes Qt Quick:   Direct3D 12 ............................ no   AnimatedImage item ..................... yes   Canvas item ............................ yes   Support for Qt Quick Designer .......... yes   Flipable item .......................... yes   GridView item .......................... yes   ListView item .......................... yes   TableView item ......................... yes   Path support ........................... yes   PathView item .......................... yes   Positioner items ....................... yes   Repeater item .......................... yes   ShaderEffect item ...................... yes   Sprite item ............................ yes Qt Scxml:   ECMAScript data model for QtScxml ...... yes Qt Gamepad:   SDL2 ................................... no Qt 3D GeometryLoaders:   Autodesk FBX ........................... no Qt Wayland Client ........................ no Qt Wayland Compositor .................... no Qt Bluetooth:   BlueZ .................................. no   BlueZ Low Energy ....................... no   Linux Crypto API ....................... no   WinRT Bluetooth API (desktop &amp; UWP) .... no   WinRT advanced bluetooth low energy API (desktop &amp; UWP) . no Qt Sensors:   sensorfw ............................... no Qt Quick Controls 2:   Styles ................................. Default Fusion Imagine Material Universal Qt Quick Templates 2:   Hover support .......................... yes   Multi-touch support .................... yes Qt Positioning:   Gypsy GPS Daemon ....................... no   WinRT Geolocation API .................. no Qt Location:   Qt.labs.location experimental QML plugin . yes   Geoservice plugins:     OpenStreetMap ........................ no     HERE ................................. yes     Esri ................................. yes     Mapbox ............................... yes     MapboxGL ............................. no     Itemsoverlay ......................... yes QtXmlPatterns:   XML schema support ..................... yes Qt Multimedia:   ALSA ................................... no   GStreamer 1.0 .......................... no   GStreamer 0.10 ......................... no   Video for Linux ........................ no   OpenAL ................................. no   PulseAudio ............................. no   Resource Policy (libresourceqt5) ....... no   Windows Audio Services ................. no   DirectShow ............................. no   Windows Media Foundation ............... no Qt Tools:   QDoc ................................... no Qt WebEngineCore:   Qt WebEngine Widgets ................... yes   Qt WebEngine Qml ....................... yes   Embedded build ......................... yes   Full debug information ................. no   Pepper Plugins ......................... no   Printing and PDF ....................... no   Proprietary Codecs ..................... no   Spellchecker ........................... yes   Native Spellchecker .................... no   WebRTC ................................. no   Use System Ninja ....................... no   Geolocation ............................ yes   WebChannel support ..................... yes   Use v8 snapshot ........................ yes   Kerberos Authentication ................ no   Extensions ............................. no   Support qpa-xcb ........................ no   Building v8 snapshot supported ......... yes   Use ALSA ............................... no   Use PulseAudio ......................... no   Optional system libraries used:     re2 .................................. no     icu .................................. no     libwebp, libwebpmux and libwebpdemux . no     opus ................................. no     ffmpeg ............................... no     libvpx ............................... no     snappy ............................... no     glib ................................. no     zlib ................................. no     minizip .............................. no     libevent ............................. no     jsoncpp .............................. no     protobuf ............................. no     libxml2 and libxslt .................. no     lcms2 ................................ no     png .................................. no     JPEG ................................. no     harfbuzz ............................. no     freetype ............................. no   Required system libraries:     fontconfig ........................... no     dbus ................................. no     nss .................................. no     khr .................................. no     glibc ................................ no   Required system libraries for qpa-xcb:     x11 .................................. no     libdrm ............................... no     xcomposite ........................... no     xcursor .............................. no     xi ................................... no     xtst ................................. no Qt WebEngineQml:   UI Delegates ........................... yes   Test Support ........................... no  Note: Using static linking will disable the use of dynamically loaded plugins. Make sure to import all needed static plugins, or compile needed modules into the library.  Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.  Note: The following modules are not being compiled in this configuration:     serialport     3dcore     3drender  WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.  Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation. On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution. On macOS, you can use Homebrew's llvm package. On Windows, you must set LLVM_INSTALL_DIR to the installation path.  WARNING: host pkg-config not found  Qt is now configured for building. Just run 'mingw32-make'. Once everything is built, you must run 'mingw32-make install'. Qt will be installed into 'c:\\qtwasm'.  Prior to reconfiguration, make sure you remove any leftovers from the previous build.<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c:<\/p>\n<pre><code class=\"plaintext\">mingw32-make mingw32-make install<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044f \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u043b WASM Qt 5.14.0 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u0432 \u043f\u0430\u043f\u043a\u0443 c:\\qtwasm \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c, \u044f \u0441\u043c\u043e\u0433 \u0441\u043e\u0431\u0440\u0430\u0442\u044c WebAssembly \u0438\u0437 5.14.0 \u0432\u0435\u0440\u0441\u0438\u0438 Qt.<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434 2.<\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Qt 5.14.0 WebAssembly, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u0432\u0430\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044e.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  Qt WebAssembly \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 Qt \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/www.qt.io\/blog\/2018\/11\/19\/getting-started-qt-webassembly\">5.12<\/a>.<\/p>\n<p>  <a href=\"https:\/\/www.qt.io\/blog\/2018\/05\/22\/qt-for-webassembly-examples\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/a> WebAssembly \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/www.qt.io\/qt-examples-for-webassembly\">\u043e\u043d\u043b\u0430\u0439\u043d<\/a> \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Qt.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043e\u0448\u0438\u0431\u043a\u0438:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gl\/in\/tm\/glintm9_aahtojefsodha0ntaz4.png\"><\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043e \u0435\u0451 <a href=\"https:\/\/wiki.qt.io\/Qt_for_WebAssembly#Known_issues_and_platform_notes\">\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u0445<\/a>. <\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0438: qtmultimedia, qtwebview.<\/p>\n<p>  \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 WebAssembly \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432 Desktop \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0434\u043e\u0447\u0438\u0442\u0430\u043b \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u043d\u043e \u0435\u0449\u0435 \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b Qt, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/www.qt.io\/download\">\u043e\u043d\u043b\u0430\u0439\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a<\/a>, \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u0438 MinGW \u0438 \u043d\u0443\u0436\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Qt WebAssmbly. <a href=\"https:\/\/www.qt.io\/development-tools\">QtCreator<\/a> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0451 \u043f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0412 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 Qt, \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 Src\\qtcharts\\examples \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0435\u0431 \u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Python, \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c:<br \/>  <code>python -m http.server 8000 --bind 192.168.0.10<\/code> \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0430\u0434\u0440\u0435\u0441 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0443 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 192.168.0.10. \u0422\u0430\u043a \u0436\u0435 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0440\u0442 \u0432 Firewall \u0438 \u0442\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\/\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\/\u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.<\/p>\n<p>  \u0413\u043e\u043b\u043e\u0441\u0443\u0439\u0442\u0435, \u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e GUI \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0434\u043b\u044f C++ Qt \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>  <i><b>\u0423\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u0412\u0430\u043c \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u043d\u043e\u0432\u044b\u0445 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0439!<\/b><\/i><\/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=\"https:\/\/habr.com\/ru\/post\/485610\/\"> https:\/\/habr.com\/ru\/post\/485610\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/485610\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2v\/ru\/wl\/2vruwlzn5xvqonnbrju4xfdatfs.png\"><\/p>\n<p>  \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 Qt, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/doc.qt.io\/qt-5\/supported-platforms.html\">\u043a\u0440\u043e\u0441\u0441 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u043c\u0438 <\/a>\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u043e\u0442 <a href=\"https:\/\/www.qt.io\/use-cases#platform\">desktop, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445, \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u0435\u0449\u0435\u0439<\/a>, \u0434\u043e <a href=\"https:\/\/www.qt.io\/blog\/2019\/08\/21\/announcing-qt-mcus\">\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432<\/a>.<\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u044d\u0442\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Qt \u0432 WebAssembly \u2014 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0412\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 wasm.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043b\u0435\u0433\u0447\u0435 \u0431\u044b\u043b\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0434\u0435\u043f\u043b\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Qt \u0432 WebAssmbly \u043f\u043e\u0434 Windows \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435.<\/p>\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-297752","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/297752","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=297752"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/297752\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=297752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=297752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=297752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}