{"id":352657,"date":"2024-05-20T22:12:47","date_gmt":"2024-05-20T22:12:47","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=352657"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=352657","title":{"rendered":"<span>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0438\u0437 Windows XP \u0432 \u0441\u0440\u0435\u0434\u0435 Windows 10 c \u043f\u043e\u043c\u043e\u0449\u044c\u044e GCC x64<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440<\/h2>\n<p>\u0412\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0432\u00a0\u0441\u0442\u0430\u0442\u044c\u0435, \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u00a0\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. Windows \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c Microsoft.<\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442 \u0432\u0441\u0435\u043c.<\/p>\n<p>\u0412 2020 \u0433\u043e\u0434\u0443 \u043c\u0438\u0440 <a href=\"https:\/\/habr.com\/ru\/news\/520598\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0431\u043b\u0435\u0442\u0435\u043b\u0430<\/a> \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u043e \u0441\u043b\u0438\u0432\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 Windows XP \u0438 Windows Server 2003 \u043d\u0430 4Chan. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434 \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0437\u043e\u0448\u0435\u043b\u0441\u044f \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443, \u0432\u043a\u043b\u044e\u0447\u0430\u044f GitHub, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 Microsoft. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/news\/520746\/\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u0440\u044b<\/a> \u043f\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 \u043a\u043e\u0434\u0430, \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u0430\u0439\u0442\u044b \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0431\u044b\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0438\u0437 \u043f\u043e\u0438\u0441\u043a\u0430.<\/p>\n<p>\u041a\u0430\u043a\u043e\u0432 \u0436\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043d\u0430 2023 \u0433\u043e\u0434? \u041a\u0430\u043a \u043d\u0438 \u043f\u0430\u0440\u0430\u0434\u043e\u043a\u0441\u0430\u043b\u044c\u043d\u043e, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 GitHub \u0438 \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0422\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0432, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/rentry.co\/build-win2k3\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/a> \u0438 \u0432\u0438\u0434\u0435\u043e, \u043a\u0430\u043a \u0432\u0441\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0434\u0443\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0421\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u041e\u0421 \u043e\u0442 Microsoft, Windows XP \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043c\u043e\u0438\u0445 \u043b\u044e\u0431\u0438\u043c\u044b\u0445 \u041e\u0421. \u041e\u043d\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u044b\u0441\u0442\u0440\u0430\u044f, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u0430\u044f, \u043d\u043e \u0432 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0447\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c C \u0438 \u0421++, \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u0430\u043d\u043d\u043e\u0439 \u041e\u0421.<\/p>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f XP \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 6 \u0413\u0431\u0430\u0439\u0442. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 <code>cloc<\/code>, \u043f\u043e\u0441\u043b\u0435 10 \u043c\u0438\u043d\u0443\u0442 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<pre><code>--------------------------------------------------------------------------------------- Language                             files          blank        comment           code --------------------------------------------------------------------------------------- C++                                  36430        5030975        5385465       17679581 C                                    24034        4511368        4689267       14461873 C\/C++ Header                         53285        2603380        2377970        7988097 Text                                  8371         588113              0        6734137 Assembly                              1542         142153         295195         559390 Windows Resource File                 6511          97268          93360         558215 IDL                                   1356          79239            259         448884 HTML                                  4755          76074          82929         376750 XML                                    607           6987           2423         361834 TNSDL                                 1154          54741            101         330732 INI                                    752          59440          22551         249914 DOS Batch                             2380          36429          21852         205067 Windows Message File                   447          33721          23142         166854 Perl                                  1005          55650          83403         144053 Pascal                                 839          28654          74852         139010 make                                  2125          20797          17273          85174 Visual Basic                           644          18993          62445          72880 Visual Basic Script                    630          17735          15022          68423 Windows Module Definition             3356          11995          10384          68263 JavaScript                             348          17176          14149          62117 ASP                                    562          11884           2473          56997 Logos                                   49           7299          10446          51327 C#                                     174           9105          12755          43936 yacc                                    20           3929           3485          23647 MSBuild script                          73             41              0          22607 Gencat NLS                              44            241              0          18130 PHP                                     70           2489            133          16066 JSX                                     13           3340            880           9911 LLVM IR                                  8            642            550           9803 sed                                    196            262             49           9549 m4                                      20           1699              0           8943 CSS                                     76           1357            269           8159 Java                                    92           2200            626           7791 XSLT                                    55           1324            573           7777 SWIG                                    13           1936            384           7606 SQL                                     34           1343           1667           7506 Expect                                  11           1962              1           7432 Forth                                    6            279             44           6086 Qt                                      29           1237              0           5827 Oracle Forms                             7           1252              0           5811 GLSL                                     1              2              0           5728 lex                                     24            999            262           5494 CSV                                     17             23              0           5055 awk                                     92            523            178           4321 Ruby                                     3            276              0           3755 DAL                                      3            278              2           3747 Prolog                                   3            278             46           3714 Verilog-SystemVerilog                    3            282             44           3699 Lisp                                     4            304            216           3650 Visual Basic .NET                       11            399            652           3591 SKILL                                    1            335              0           2850 Mathematica                             36            142              0           2135 DTD                                     22            621            407           2087 Ring                                    14            343            355           1854 ASP.NET                                  4            312             13           1756 Bourne Shell                            10            240            273           1642 Igor Pro                                 3              0              0           1494 Visual Studio Solution                  70              0              0           1415 Markdown                                 1              5              0           1407 D                                       14            320           3649            882 XSD                                      9             76            174            734 Oracle PL\/SQL                            2            222            153            656 MATLAB                                   8             66            104            560 ProGuard                                 1             60             87            505 TeX                                     16             44              0            248 WebAssembly                              2             32              0            239 Smalltalk                                5              9              0            211 R                                       10             23             19            192 ReScript                                 1              1              0            184 SAS                                      2             38             89            168 COBOL                                    1             35              2            141 Scheme                                   2              6              0            119 reStructuredText                         4              2              0             40 TypeScript                               1              0              0             33 F#                                       1              5              0             22 DenizenScript                            1              7             13              9 Nemerle                                  1              0              0              5 Oracle Reports                           1              1              0              5 --------------------------------------------------------------------------------------- SUM:                                152527       13551018       13313115       51160506 ---------------------------------------------------------------------------------------<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u0435\u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 C, \u0421++ \u0438 assembly, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430 40.7 \u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a.  \u0418\u0437 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 <a href=\"https:\/\/rentry.co\/build-win2k3\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/a> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043a\u043e\u043b\u043e 70 % \u043a\u043e\u0434\u0430 \u0432\u0441\u0435\u0439 \u041e\u0421, \u0442.\u0435. \u0438\u0442\u043e\u0433\u043e\u0433\u043e\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0446\u0435\u043d\u0435\u043d\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 <strong>58 \u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a.<\/strong><\/p>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c 41 \u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u0447\u0430\u0442\u044c \u0441 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0412\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/microsoft\/calculator\/\" rel=\"noopener noreferrer nofollow\">\u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440<\/a>. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d? \u0412\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a <a href=\"https:\/\/github.com\/microsoft\/calculator\/blob\/main\/README.md#diagnostic-data\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443<\/a> :).<\/p>\n<p>\u0412 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f, \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u043e\u0442 \u041c\u0430\u0439\u043a\u0440\u043e\u0441\u043e\u0444\u0442 \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c \u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436 \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GCC x64.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f:<\/p>\n<ol>\n<li>\n<p>\u0425\u043e\u0441\u0442 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 Windows. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Windows 10.<\/p>\n<\/li>\n<li>\n<p>Qt. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043a\u0430\u043a QtCreator, \u0442\u0430\u043a \u0438 \u043f\u043e\u0440\u0442 GCC \u0434\u043b\u044f Windows MinGW-64. \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b \u043e\u0431\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Qt Maintanance Tool. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 Path.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>Makefile<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <code>make<\/code>.<\/p>\n<\/li>\n<\/ol>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440<\/h2>\n<p>\u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>cloc<\/code>:<\/p>\n<pre><code>----------------------------------------------------------------------------------- Language                         files          blank        comment           code ----------------------------------------------------------------------------------- C                                   27           1666           2737           6277 C\/C++ Header                        13            213            429           1080 Windows Resource File                1             75             46            494 C++                                  1             11              1             73 XML                                  1              0              0             21 make                                 1              0              5              1 ----------------------------------------------------------------------------------- SUM:                                44           1965           3218           7946 -----------------------------------------------------------------------------------<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 <code>calc.exe<\/code> \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u0430 8000 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0438\u0437 42 \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0432 \u043a\u043e\u0434, \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u0434\u0440\u0435\u0432\u043d\u0438\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432 80-90\u0445 \u0433\u043e\u0434\u0430\u0445 XX \u0432\u0435\u043a\u0430. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e C \u043a\u043e\u0434, \u0430 \u0444\u0430\u0439\u043b\u044b \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <code>.c<\/code>. \u041d\u043e \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u043e\u043d \u043a\u0438\u0434\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>g++<\/code>.<\/p>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <code>QtCreator<\/code> \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u041e\u0421. \u041d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442 \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432. \u041d\u0430\u0434\u043e \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c \u043c\u0438\u043d\u0443\u0442 15-20.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0438 \u0438\u0449\u0435\u043c <code>calc<\/code>. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u0443\u0441\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0432:<\/p>\n<pre><code>NT\\shell\\osshell\\accesory\\calc<\/code><\/pre>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432 \u043f\u0430\u043f\u043a\u0443, \u0432\u0438\u0434\u0438\u043c <code>.c<\/code> \u0438 <code>.h<\/code> \u0444\u0430\u0439\u043b\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0430\u043f\u043a\u0443 <code>nt<\/code>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0431\u043e\u0440\u043a\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0444\u0430\u0439\u043b\u043e\u0432. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0435 <code>calc<\/code> <code>Makefile<\/code>, \u0432\u0437\u044f\u0432 \u0437\u0430 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0438\u0437 \u043c\u043e\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e STM32 <a href=\"https:\/\/habr.com\/ru\/articles\/705062\/\" rel=\"noopener noreferrer nofollow\">(\u0440\u0443\u0441\u0441\u043a\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/a>, <a href=\"https:\/\/habr.com\/ru\/articles\/706198\/\" rel=\"noopener noreferrer nofollow\">\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/a>) \u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0432 \u0435\u0433\u043e \u043f\u043e\u0434 \u043d\u0430\u0448 \u0441\u043b\u0443\u0447\u0430\u0439. \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0440\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u0437 <code>nt\/sources<\/code>. \u0412\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<details class=\"spoiler\">\n<summary>Calc makefile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>TARGET = calc BUILD_DIR = build OPT = -O0 CC = g++  C_SOURCES = calc.c      \\             input.c     \\             scicomm.c   \\             scidisp.c   \\             scifunc.c   \\             scikeys.c   \\             scimath.c   \\             scimenu.c   \\             scioper.c   \\             sciproc.c   \\             sciset.c    \\             scistat.c   \\             unifunc.c   \\             wassert.c  C_DEFS = -DWIN32 \\          -DW3 \\          -DWINNT \\          -DUNICODE \\          -D_UNICODE \\          -DUSE_MIRRORING  C_INCLUDES = -I..\\ratpak \\              -I..\\inc \\  CFLAGS += $(C_DEFS) $(C_INCLUDES) $(OPT)  LIBS =  LIBDIR = LDFLAGS = $(LIBDIR) $(LIBS)  all: $(BUILD_DIR)\/$(TARGET)  OBJECTS = $(addprefix $(BUILD_DIR)\/,$(notdir $(C_SOURCES:.c=.o)))  $(BUILD_DIR)\/%.o: %.c Makefile | $(BUILD_DIR)  $(CC) -c $(CFLAGS) -o $@  $&lt;  $(BUILD_DIR)\/$(TARGET): $(OBJECTS) Makefile $(CC) $(OBJECTS) $(LDFLAGS) -o $@  $(BUILD_DIR): mkdir $@  clean: -rm -fR $(BUILD_DIR)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>make<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>Calc build output &#8212; 1<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>mkdir build g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/calc.o  calc.c In file included from calc.c:29: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from calc.c:26: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/input.o  input.c In file included from input.c:14: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from input.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scicomm.o  scicomm.c In file included from scicomm.c:15: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scicomm.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scidisp.o  scidisp.c In file included from scidisp.c:14: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scidisp.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scifunc.o  scifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scikeys.o  scikeys.c In file included from scikeys.c:3: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scikeys.c:1: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scimath.o  scimath.c In file included from scimath.c:4: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scimath.c:1: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scimenu.o  scimenu.c In file included from scimenu.c:26: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scimenu.c:25: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scioper.o  scioper.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/sciproc.o  sciproc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/sciset.o  sciset.c In file included from sciset.c:22: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from sciset.c:21: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scistat.o  scistat.c In file included from scistat.c:35: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scistat.c:33: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/unifunc.o  unifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/wassert.o  wassert.c g++ build\/calc.o build\/input.o build\/scicomm.o build\/scidisp.o build\/scifunc.o build\/scikeys.o build\/scimath.o build\/scimenu.o build\/scioper.o build\/sciproc.o build\/sciset.o build\/scistat.o build\/unifunc.o build\/wassert.o    -o build\/calc build\/calc.o:calc.c:(.text+0xa42): undefined reference to `_destroyrat(_rat*)' build\/calc.o:calc.c:(.text+0xa52): undefined reference to `_createrat()' build\/calc.o:calc.c:(.text+0xa6b): undefined reference to `_destroynum(_number*)' build\/calc.o:calc.c:(.text+0xa97): undefined reference to `_createnum(long)' build\/calc.o:calc.c:(.text+0xaeb): undefined reference to `_destroynum(_number*)' build\/calc.o:calc.c:(.text+0xb19): undefined reference to `_createnum(long)' build\/calc.o:calc.c:(.text+0xb9c): undefined reference to `_destroyrat(_rat*)' build\/calc.o:calc.c:(.text+0xbac): undefined reference to `_createrat()' build\/calc.o:calc.c:(.text+0xbc5): undefined reference to `_destroynum(_number*)' build\/calc.o:calc.c:(.text+0xbf1): undefined reference to `_createnum(long)' build\/calc.o:calc.c:(.text+0xc45): undefined reference to `_destroynum(_number*)' build\/calc.o:calc.c:(.text+0xc73): undefined reference to `_createnum(long)' build\/calc.o:calc.c:(.text+0xcc7): undefined reference to `_destroyrat(_rat*)' build\/calc.o:calc.c:(.text+0xcd7): undefined reference to `_createrat()' build\/calc.o:calc.c:(.text+0xcf0): undefined reference to `_destroynum(_number*)' build\/calc.o:calc.c:(.text+0xd1c): undefined reference to `_createnum(long)' build\/calc.o:calc.c:(.text+0xd70): undefined reference to `_destroynum(_number*)' build\/calc.o:calc.c:(.text+0xd9e): undefined reference to `_createnum(long)' build\/calc.o:calc.c:(.text+0x159b): undefined reference to `zerrat(_rat*)' build\/calc.o:calc.c:(.rdata$.refptr.rat_zero[.refptr.rat_zero]+0x0): undefined reference to `rat_zero' build\/calc.o:calc.c:(.rdata$.refptr.rat_byte[.refptr.rat_byte]+0x0): undefined reference to `rat_byte' build\/calc.o:calc.c:(.rdata$.refptr.rat_word[.refptr.rat_word]+0x0): undefined reference to `rat_word' build\/calc.o:calc.c:(.rdata$.refptr.rat_dword[.refptr.rat_dword]+0x0): undefined reference to `rat_dword' build\/calc.o:calc.c:(.rdata$.refptr.rat_qword[.refptr.rat_qword]+0x0): undefined reference to `rat_qword' build\/input.o:input.c:(.text+0x136): undefined reference to `inrat(int, wchar_t*, int, wchar_t*)' build\/input.o:input.c:(.text+0x149): undefined reference to `_destroyrat(_rat*)' build\/input.o:input.c:(.text+0x159): undefined reference to `_createrat()' build\/input.o:input.c:(.text+0x175): undefined reference to `_destroynum(_number*)' build\/input.o:input.c:(.text+0x19b): undefined reference to `_createnum(long)' build\/input.o:input.c:(.text+0x1e3): undefined reference to `_destroynum(_number*)' build\/input.o:input.c:(.text+0x20b): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x626): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x64e): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x680): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x6ca): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x73c): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x788): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x900): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x913): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x935): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x973): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x9e5): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xa25): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xa9c): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0xaaf): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0xad1): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xb03): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xb5d): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xb91): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xc02): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0xc15): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0xc37): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xc69): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xcc3): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xcf7): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xd51): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0xd64): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0xd86): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xdb8): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xe12): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xe46): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xf07): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0xf1a): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0xf3c): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xf6e): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0xfc8): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0xffc): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1373): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x1386): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x13a8): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x13da): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1434): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1468): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1556): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x1569): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x158b): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x15bd): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1617): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x164b): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x17c4): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x17d7): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x17f9): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x182b): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1885): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x18b9): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x192f): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x193f): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x1958): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1984): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x19d8): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1a06): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1a62): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x1a75): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x1a97): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1ac6): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1b1a): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1b4b): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1bc3): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x1bd6): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x1bf8): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1c2a): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1c84): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1cb8): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1db7): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x1dca): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x1dec): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1e2a): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1e9c): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1edc): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x1f53): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x1f66): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x1f88): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x1fba): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2014): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x2048): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x216e): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x2196): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x21c8): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x2212): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2284): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x22d0): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2385): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x2398): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x23ba): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x23ec): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2446): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x247a): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x257f): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x2592): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x25b4): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x25f2): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2664): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x26a4): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x271b): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x272e): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x2750): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x2782): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x27dc): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x2810): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x28a8): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x28bb): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x28dd): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x291b): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x298d): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x29cd): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2df9): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x2e0c): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x2e2e): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x2e60): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2eba): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x2eee): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x2f59): undefined reference to `addrat(_rat**, _rat*)' build\/scicomm.o:scicomm.c:(.text+0x2f6b): undefined reference to `zerrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x2fbf): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x2fd2): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x2ff4): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x3026): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x3080): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x30b4): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x3113): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x3126): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x3148): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x317a): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x31d4): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x3208): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x3262): undefined reference to `zerrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x32cb): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x32de): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x3300): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x3332): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x338c): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x33c0): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x341f): undefined reference to `_destroyrat(_rat*)' build\/scicomm.o:scicomm.c:(.text+0x3432): undefined reference to `_createrat()' build\/scicomm.o:scicomm.c:(.text+0x3454): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x3486): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.text+0x34e0): undefined reference to `_destroynum(_number*)' build\/scicomm.o:scicomm.c:(.text+0x3514): undefined reference to `_createnum(long)' build\/scicomm.o:scicomm.c:(.rdata$.refptr.pi[.refptr.pi]+0x0): undefined reference to `pi' build\/scicomm.o:scicomm.c:(.rdata$.refptr.two_pi[.refptr.two_pi]+0x0): undefined reference to `two_pi' build\/scidisp.o:scidisp.c:(.text+0x51): undefined reference to `rat_equ(_rat*, _rat*)' build\/scidisp.o:scidisp.c:(.text+0x134): undefined reference to `_destroyrat(_rat*)' build\/scidisp.o:scidisp.c:(.text+0x144): undefined reference to `_createrat()' build\/scidisp.o:scidisp.c:(.text+0x15d): undefined reference to `_destroynum(_number*)' build\/scidisp.o:scidisp.c:(.text+0x189): undefined reference to `_createnum(long)' build\/scidisp.o:scidisp.c:(.text+0x1dd): undefined reference to `_destroynum(_number*)' build\/scidisp.o:scidisp.c:(.text+0x20b): undefined reference to `_createnum(long)' build\/scidisp.o:scidisp.c:(.text+0x352): undefined reference to `intrat(_rat**)' build\/scidisp.o:scidisp.c:(.text+0x36e): undefined reference to `rat_lt(_rat*, _rat*)' build\/scidisp.o:scidisp.c:(.text+0x3b0): undefined reference to `subrat(_rat**, _rat*)' build\/scidisp.o:scidisp.c:(.text+0x3e1): undefined reference to `andrat(_rat**, _rat*)' build\/scidisp.o:scidisp.c:(.rdata$.refptr.fhalt[.refptr.fhalt]+0x0): undefined reference to `fhalt' build\/scidisp.o:scidisp.c:(.rdata$.refptr.rat_one[.refptr.rat_one]+0x0): undefined reference to `rat_one' build\/scifunc.o:scifunc.c:(.text+0x54): undefined reference to `fracrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x62): undefined reference to `intrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x91): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x9e): undefined reference to `_createrat()' build\/scifunc.o:scifunc.c:(.text+0xb1): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0xd7): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x125): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0x14d): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x1b0): undefined reference to `divrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x1bc): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x1d4): undefined reference to `mulrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x1e0): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x232): undefined reference to `asinhrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x24b): undefined reference to `asinanglerat(_rat**, eANGLE_TYPE)' build\/scifunc.o:scifunc.c:(.text+0x266): undefined reference to `sinhrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x2bd): undefined reference to `acoshrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x2d6): undefined reference to `acosanglerat(_rat**, eANGLE_TYPE)' build\/scifunc.o:scifunc.c:(.text+0x2f1): undefined reference to `coshrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x348): undefined reference to `atanhrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x361): undefined reference to `atananglerat(_rat**, eANGLE_TYPE)' build\/scifunc.o:scifunc.c:(.text+0x37c): undefined reference to `tanhrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x3cd): undefined reference to `rootrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x3dd): undefined reference to `ratpowlong(_rat**, long)' build\/scifunc.o:scifunc.c:(.text+0x40c): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x419): undefined reference to `_createrat()' build\/scifunc.o:scifunc.c:(.text+0x42c): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0x452): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x4a0): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0x4c8): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x520): undefined reference to `addrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x530): undefined reference to `rootrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x53c): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x557): undefined reference to `ratpowlong(_rat**, long)' build\/scifunc.o:scifunc.c:(.text+0x586): undefined reference to `exprat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x59a): undefined reference to `log10rat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x5a8): undefined reference to `lograt(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x5b6): undefined reference to `factrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x625): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x632): undefined reference to `_createrat()' build\/scifunc.o:scifunc.c:(.text+0x645): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0x668): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x6b0): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0x6d5): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x71a): undefined reference to `intrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x72d): undefined reference to `subrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x73d): undefined reference to `mulrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x749): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x756): undefined reference to `_createrat()' build\/scifunc.o:scifunc.c:(.text+0x769): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0x789): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x7cb): undefined reference to `_destroynum(_number*)' build\/scifunc.o:scifunc.c:(.text+0x7ed): undefined reference to `_createnum(long)' build\/scifunc.o:scifunc.c:(.text+0x82f): undefined reference to `intrat(_rat**)' build\/scifunc.o:scifunc.c:(.text+0x83f): undefined reference to `subrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x84f): undefined reference to `mulrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x884): undefined reference to `divrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x894): undefined reference to `addrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x8a4): undefined reference to `divrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x8b4): undefined reference to `addrat(_rat**, _rat*)' build\/scifunc.o:scifunc.c:(.text+0x8c0): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x8d4): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x8e8): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x925): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x942): undefined reference to `_destroyrat(_rat*)' build\/scifunc.o:scifunc.c:(.text+0x9b4): more undefined references to `_destroyrat(_rat*)' follow build\/scifunc.o:scifunc.c:(.rdata$.refptr.rat_two[.refptr.rat_two]+0x0): undefined reference to `rat_two' build\/scimath.o:scimath.c:(.text+0xf7): undefined reference to `ChangeConstants(long, long)' build\/scimath.o:scimath.c:(.text+0x115): undefined reference to `ChangeConstants(long, long)' build\/scimath.o:scimath.c:(.text+0x142): undefined reference to `_destroyrat(_rat*)' build\/scimath.o:scimath.c:(.text+0x14f): undefined reference to `_createrat()' build\/scimath.o:scimath.c:(.text+0x162): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x188): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x1d6): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x1fe): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x253): undefined reference to `divrat(_rat**, _rat*)' build\/scimath.o:scimath.c:(.text+0x262): undefined reference to `_destroyrat(_rat*)' build\/scimath.o:scimath.c:(.text+0x272): undefined reference to `_createrat()' build\/scimath.o:scimath.c:(.text+0x28e): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x2b4): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x2fc): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x324): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x369): undefined reference to `_destroyrat(_rat*)' build\/scimath.o:scimath.c:(.text+0x3b7): undefined reference to `powrat(_rat**, _rat*)' build\/scimath.o:scimath.c:(.text+0x3c6): undefined reference to `_destroyrat(_rat*)' build\/scimath.o:scimath.c:(.text+0x3d6): undefined reference to `_createrat()' build\/scimath.o:scimath.c:(.text+0x3f2): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x418): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x460): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x488): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x4cd): undefined reference to `_destroyrat(_rat*)' build\/scimath.o:scimath.c:(.text+0x500): undefined reference to `intrat(_rat**)' build\/scimath.o:scimath.c:(.text+0x516): undefined reference to `addrat(_rat**, _rat*)' build\/scimath.o:scimath.c:(.text+0x554): undefined reference to `xorrat(_rat**, _rat*)' build\/scimath.o:scimath.c:(.text+0x57b): undefined reference to `sinanglerat(_rat**, eANGLE_TYPE)' build\/scimath.o:scimath.c:(.text+0x5a2): undefined reference to `cosanglerat(_rat**, eANGLE_TYPE)' build\/scimath.o:scimath.c:(.text+0x5c9): undefined reference to `tananglerat(_rat**, eANGLE_TYPE)' build\/scimath.o:scimath.c:(.text+0x5f7): undefined reference to `longtorat(long)' build\/scimath.o:scimath.c:(.text+0x60a): undefined reference to `_destroyrat(_rat*)' build\/scimath.o:scimath.c:(.text+0x61a): undefined reference to `_createrat()' build\/scimath.o:scimath.c:(.text+0x636): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x65c): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x6a4): undefined reference to `_destroynum(_number*)' build\/scimath.o:scimath.c:(.text+0x6cc): undefined reference to `_createnum(long)' build\/scimath.o:scimath.c:(.text+0x711): undefined reference to `_destroyrat(_rat*)' build\/scimath.o:scimath.c:(.text+0x74e): undefined reference to `putrat(_rat**, unsigned long, int)' build\/scimenu.o:scimenu.c:(.text+0x822): undefined reference to `HtmlHelpW' build\/scioper.o:scioper.c:(.text+0x5e): undefined reference to `andrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x73): undefined reference to `orrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x88): undefined reference to `xorrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x99): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0xa6): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0xb9): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0xdc): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x124): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x149): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x194): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x1a4): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0x1c0): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x1e6): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x22e): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x256): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x29f): undefined reference to `rshrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x2b0): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x2bd): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0x2d0): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x2f3): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x33b): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x360): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x3ab): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x3bb): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0x3d7): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x3fd): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x445): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x46d): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x4b6): undefined reference to `lshrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x4cb): undefined reference to `addrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x4e0): undefined reference to `subrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x50f): undefined reference to `mulrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x520): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x52d): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0x540): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x563): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x5ab): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x5d0): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x61b): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x62b): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0x647): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x66d): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x6b5): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x6dd): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x72c): undefined reference to `divrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x741): undefined reference to `modrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x752): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x75f): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0x772): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x795): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x7dd): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x802): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x84d): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x85d): undefined reference to `_createrat()' build\/scioper.o:scioper.c:(.text+0x879): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x89f): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x8e7): undefined reference to `_destroynum(_number*)' build\/scioper.o:scioper.c:(.text+0x90f): undefined reference to `_createnum(long)' build\/scioper.o:scioper.c:(.text+0x987): undefined reference to `rootrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x999): undefined reference to `powrat(_rat**, _rat*)' build\/scioper.o:scioper.c:(.text+0x9b4): undefined reference to `_destroyrat(_rat*)' build\/scioper.o:scioper.c:(.text+0x9f4): undefined reference to `_destroyrat(_rat*)' build\/sciproc.o:sciproc.c:(.text+0x33b): undefined reference to `HtmlHelpW' build\/sciproc.o:sciproc.c:(.text+0x581): undefined reference to `__imp_SetBkMode' build\/sciproc.o:sciproc.c:(.text+0x5db): undefined reference to `__imp_SetTextColor' build\/sciproc.o:sciproc.c:(.text+0x623): undefined reference to `__imp_SetBkMode' build\/sciproc.o:sciproc.c:(.text+0x67b): undefined reference to `__imp_SetBkColor' build\/sciproc.o:sciproc.c:(.text+0x69b): undefined reference to `__imp_SetTextColor' build\/scistat.o:scistat.c:(.text+0x148): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x3d3): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x3e6): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x408): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x449): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x4c1): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x504): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x74a): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x77d): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x7a1): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x7fc): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x88e): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x8eb): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0xaa8): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0xcc6): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0xcff): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0xd26): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0xd77): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0xdef): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0xe42): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0xf0d): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0xf20): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0xf42): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0xf74): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0xfce): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1002): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x106c): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1079): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x108c): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x10be): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1124): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1158): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x11d7): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x11e4): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x11f7): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1217): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1259): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x127b): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x12c1): undefined reference to `mulrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x12d4): undefined reference to `addrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x12e0): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x12fd): undefined reference to `addrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1353): undefined reference to `divrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x135f): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1373): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x13ba): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x13cd): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x13ef): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1421): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x147b): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x14af): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1528): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x153b): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x155d): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x158f): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x15e9): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x161d): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1671): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x167e): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x1691): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x16b7): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1705): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x172d): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1791): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x179e): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x17b1): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x17e3): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1849): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x187d): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x18e7): undefined reference to `addrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x18f3): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1900): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x1913): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1933): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1975): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1997): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x19dd): undefined reference to `mulrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x19f0): undefined reference to `addrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1a17): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1a24): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x1a37): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1a57): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1a99): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1abb): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1b01): undefined reference to `mulrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1b11): undefined reference to `divrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1b1d): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1b2a): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x1b3d): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1b63): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1bb1): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1bd9): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1c2b): undefined reference to `subrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1c37): undefined reference to `zerrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1c56): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1c69): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x1c8b): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1cbd): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1d17): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1d4b): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1dbb): undefined reference to `subrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1dcb): undefined reference to `divrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1de1): undefined reference to `rootrat(_rat**, _rat*)' build\/scistat.o:scistat.c:(.text+0x1df3): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1e06): undefined reference to `_createrat()' build\/scistat.o:scistat.c:(.text+0x1e28): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1e54): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1ea2): undefined reference to `_destroynum(_number*)' build\/scistat.o:scistat.c:(.text+0x1ed0): undefined reference to `_createnum(long)' build\/scistat.o:scistat.c:(.text+0x1f18): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1f2c): undefined reference to `_destroyrat(_rat*)' build\/scistat.o:scistat.c:(.text+0x1f40): undefined reference to `_destroyrat(_rat*)' collect2.exe: error: ld returned 1 exit status make: *** [build\/calc] Error 1<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u0438\u0434\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0430\u0443\u0442\u043f\u0443\u0442, \u0447\u0430\u0441\u0442\u044c \u0432\u0430\u0440\u043d\u0438\u043d\u0433\u043e\u0432 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u0438\u043a\u0430\u0445 Windows. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0432\u0438\u0434\u0438\u043c \u043e\u0448\u0438\u0431\u043a\u0443 \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0438, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 <code>ratpak<\/code>. \u0418\u0437 \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b\u0430 <code>nt\/source<\/code> \u043d\u0430\u0445\u043e\u0434\u0438\u043c, \u0447\u0442\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 <code>ratpak<\/code> \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u044b\u0448\u0435:<\/p>\n<pre><code>NT\\shell\\osshell\\accesory\\ratpak<\/code><\/pre>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0435\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c. \u0418\u0434\u0435\u043c \u0432 \u0435\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c <code>Makefile<\/code> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f, \u0432\u0437\u044f\u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u0438\u0437 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0433\u043e <code>nt\/source<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>Ratpak makefile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>TARGET = ratpak.lib BUILD_DIR = build OPT = -Os  C_SOURCES = rat.c \\ num.c \\ conv.c \\ debug.c \\ itrans.c \\ trans.c \\ transh.c \\ itransh.c \\ logic.c \\ fact.c \\ basex.c \\ exp.c \\ support.c \\  CC = g++  C_DEFS = -DWIN32 \\  -DW3 \\  -DWINNT \\  -DUNICODE \\  -D_UNICODE \\  -DNOMINMAX  C_INCLUDES = -I.  CFLAGS += $(C_DEFS) $(C_INCLUDES) $(OPT)  all: $(BUILD_DIR)\/$(TARGET)  OBJECTS = $(addprefix $(BUILD_DIR)\/,$(notdir $(C_SOURCES:.c=.o))) vpath %.c $(sort $(dir $(C_SOURCES)))  $(BUILD_DIR)\/%.o: %.c Makefile | $(BUILD_DIR)  $(CC) -c $(CFLAGS) -o $@  $&lt;  $(BUILD_DIR)\/$(TARGET): $(OBJECTS) ar ru $@ $^ ranlib $@  $(BUILD_DIR): mkdir $@  clean: -rm -fR $(BUILD_DIR) <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0422\u0443\u0442 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430, \u0447\u0442\u043e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c <code>ratpak<\/code> \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code>$(BUILD_DIR)\/$(TARGET): $(OBJECTS)     ar ru $@ $^     ranlib $@<\/code><\/pre>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c <code>make<\/code>:<\/p>\n<details class=\"spoiler\">\n<summary>Ratpak build output &#8212; 1<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>mkdir build g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DNOMINMAX -I. -Os -o build\/rat.o  rat.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DNOMINMAX -I. -Os -o build\/num.o  num.c num.c: In function 'void _addnum(_number**, PNUMBER, long unsigned int)': num.c:88:15: error: 'max' was not declared in this scope      cdigits = max( a->cdigit+a->exp, b->cdigit+b->exp ) -                ^~~ num.c:89:13: error: 'min' was not declared in this scope              min( a->exp, b->exp );              ^~~ num.c: In function 'BOOL equnum(PNUMBER, PNUMBER)': num.c:546:23: error: 'max' was not declared in this scope              cdigits = max( a->cdigit, b->cdigit );                        ^~~ num.c: In function 'BOOL lessnum(PNUMBER, PNUMBER)': num.c:613:23: error: 'max' was not declared in this scope              cdigits = max( a->cdigit, b->cdigit );                        ^~~ make: *** [build\/num.o] Error 1<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u0438\u0434\u0438\u043c \u043e\u0448\u0438\u0431\u043a\u0443, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0441 \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c\u0438 <code>min<\/code> \u0438 <code>max<\/code>. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 Windows, \u0432 XP \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 \u0444\u0430\u0439\u043b <code>windows.h<\/code>. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u043e\u0434\u043d\u043e\u0439 \u0444\u0430\u0439\u043b XP, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 STL. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b <code>custom.h<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435:<\/p>\n<pre><code>#pragma once  #include &lt;algorithm>  using std::min; using std::max;<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u044d\u0442\u043e\u0442 \u0445\u0435\u0434\u0435\u0440 \u0432 <code>num.c<\/code>, <code>logic.c<\/code> \u0438 <code>support.c<\/code>. \u041f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c:<\/p>\n<details class=\"spoiler\">\n<summary>Ratpak build output &#8212; 2<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DNOMINMAX -I. -Os -o build\/support.o  support.c support.c:64:8: error: 'cbitsofprecision' does not name a type; did you mean 'changePrecision'?  static cbitsofprecision = RATIO_FOR_DECIMAL * DECIMAL *         ^~~~~~~~~~~~~~~~         changePrecision In file included from support.c:67: .\/ratconst.h:7:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:14:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:21:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:28:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:35:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:42:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:48:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:55:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:61:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:68:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:74:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:81:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:87:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:94:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:100:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:107:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:113:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:120:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:126:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:133:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:139:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:146:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:152:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:159:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:165:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:172:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:178:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:185:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:191:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:198:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:204:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:211:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:217:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:224:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:230:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:237:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:243:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:250:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:256:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:263:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:269:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:276:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:282:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:289:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:295:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:302:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:308:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:315:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:321:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:328:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:334:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:341:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:347:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:354:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:360:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:367:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:373:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:380:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:386:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:393:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:399:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:406:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:412:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:419:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:425:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:432:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ .\/ratconst.h:438:1: error: too many initializers for 'MANTTYPE [0]' {aka 'long unsigned int [0]'}  };  ^ support.c: In function 'void ChangeConstants(long int, long int)': support.c:198:10: error: 'cbitsofprecision' was not declared in this scope      if ( cbitsofprecision &lt; ( ratio * nRadix * nPrecision ) )           ^~~~~~~~~~~~~~~~ support.c:198:10: note: suggested alternative: 'changePrecision'      if ( cbitsofprecision &lt; ( ratio * nRadix * nPrecision ) )           ^~~~~~~~~~~~~~~~           changePrecision make: *** [build\/support.o] Error 1<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u0438\u0434\u0438\u043c 2 \u0442\u0438\u043f\u0430 \u043e\u0448\u0438\u0431\u043e\u043a. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d \u0442\u0438\u043f (!) \u0432 <code>support.c<\/code> \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 41 \u0438 64. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0443\u0434\u0430 <code>int<\/code>:<\/p>\n<pre><code>static int cbitsofprecision<\/code><\/pre>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 0 (!) \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <code>NUMBER<\/code> \u0438\u0437 <code>ratpak.h<\/code> \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u0423\u0434\u0430\u043b\u044f\u0435\u043c 0 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 [0], \u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u043a\u043e\u0431\u043a\u0438 []. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442, \u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>build<\/code> \u043b\u0435\u0436\u0438\u0442 <code>ratpak.lib<\/code>.<\/p>\n<details class=\"spoiler\">\n<summary>Ratpak build output &#8212; 3<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DNOMINMAX -I. -Os -o build\/support.o  support.c ar ru build\/ratpak.lib build\/rat.o build\/num.o build\/conv.o build\/debug.o build\/itrans.o build\/trans.o build\/transh.o build\/itransh.o build\/logic.o build\/fact.o build\/basex.o build\/exp.o build\/support.o ar: creating build\/ratpak.lib ranlib build\/ratpak.lib<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a <code>calc<\/code> \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u043b\u0438\u0431\u043e\u0439, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 <code>Makefile<\/code> \u043a \u043d\u0435\u0439 \u043f\u0443\u0442\u044c \u0438 \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0443.<\/p>\n<pre><code>LIBS = -lratpak LIBDIR = -L..\\ratpak\\build<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Calc build output &#8212; 2<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/calc.o  calc.c In file included from calc.c:29: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from calc.c:26: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/input.o  input.c In file included from input.c:14: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from input.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scicomm.o  scicomm.c In file included from scicomm.c:15: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scicomm.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scidisp.o  scidisp.c In file included from scidisp.c:14: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scidisp.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scifunc.o  scifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scikeys.o  scikeys.c In file included from scikeys.c:3: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scikeys.c:1: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scimath.o  scimath.c In file included from scimath.c:4: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scimath.c:1: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scimenu.o  scimenu.c In file included from scimenu.c:26: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scimenu.c:25: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scioper.o  scioper.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/sciproc.o  sciproc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/sciset.o  sciset.c In file included from sciset.c:22: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from sciset.c:21: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scistat.o  scistat.c In file included from scistat.c:35: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scistat.c:33: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/unifunc.o  unifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/wassert.o  wassert.c g++ build\/calc.o build\/input.o build\/scicomm.o build\/scidisp.o build\/scifunc.o build\/scikeys.o build\/scimath.o build\/scimenu.o build\/scioper.o build\/sciproc.o build\/sciset.o build\/scistat.o build\/unifunc.o build\/wassert.o  -L..\\ratpak\\build -lratpak -o build\/calc build\/scimenu.o:scimenu.c:(.text+0x822): undefined reference to `HtmlHelpW' build\/sciproc.o:sciproc.c:(.text+0x33b): undefined reference to `HtmlHelpW' build\/sciproc.o:sciproc.c:(.text+0x581): undefined reference to `__imp_SetBkMode' build\/sciproc.o:sciproc.c:(.text+0x5db): undefined reference to `__imp_SetTextColor' build\/sciproc.o:sciproc.c:(.text+0x623): undefined reference to `__imp_SetBkMode' build\/sciproc.o:sciproc.c:(.text+0x67b): undefined reference to `__imp_SetBkColor' build\/sciproc.o:sciproc.c:(.text+0x69b): undefined reference to `__imp_SetTextColor' ..\\ratpak\\build\/ratpak.lib(rat.o):rat.c:(.text+0x2f): undefined reference to `divnumx(_number**, _number*)' ..\\ratpak\\build\/ratpak.lib(rat.o):rat.c:(.text+0x3b): undefined reference to `divnumx(_number**, _number*)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0x494): undefined reference to `divnumx(_number**, _number*)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0xcaf): undefined reference to `divnum(_number**, _number*, unsigned long)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0x10d4): undefined reference to `mulnum(_number**, _number*, unsigned long)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0x1141): undefined reference to `mulnum(_number**, _number*, unsigned long)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0x11a7): undefined reference to `mulnum(_number**, _number*, unsigned long)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0x11b5): undefined reference to `mulnum(_number**, _number*, unsigned long)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0x12f5): undefined reference to `mulnum(_number**, _number*, unsigned long)' ..\\ratpak\\build\/ratpak.lib(conv.o):conv.c:(.text+0x138d): undefined reference to `divnum(_number**, _number*, unsigned long)' collect2.exe: error: ld returned 1 exit status make: *** [build\/calc] Error 1<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043d\u044b\u043c\u0438 \u0440\u044f\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. <code>HtmlHelpW<\/code> \u2013 \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>libhtmlhelp<\/code> (\u0432\u044b\u0437\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u043a\u0438), <code>__imp_SetBkMode<\/code> \u0438 \u0442.\u043f. \u2013 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>gdi32<\/code>, \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>ratpak<\/code>. \u0412 \u043f\u0435\u0440\u0432\u044b\u0445 2 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0443 \u0432 `Makefile`:<\/p>\n<pre><code>LIBS = -lratpak -lgdi32 \u2013lhtmlhelp<\/code><\/pre>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <code>htmlhelp<\/code> \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 Windows SDK. \u041e\u0434\u0438\u043d\u0430\u043a\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 GCC \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 \u043f\u0443\u0442\u0438, \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432 \u043f\u0430\u043f\u043a\u0443 lib \u0438 \u0443\u043a\u0430\u0436\u0435\u043c \u043f\u0443\u0442\u044c \u043a \u043d\u0435\u0439.<\/p>\n<pre><code>LIBDIR = -L..\\ratpak\\build -Llib<\/code><\/pre>\n<p>\u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0435 <code>inline<\/code> \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <code>mulnum<\/code>, <code>divnum<\/code> \u0432 <code>num.c<\/code> \u0438 <code>mulnumx<\/code>, <code>divnumx<\/code> \u0432 <code>basex.c<\/code>. \u0414\u043b\u044f GCC \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c.<\/p>\n<p>\u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043e\u0431\u0440\u0430\u0442\u044c:<\/p>\n<details class=\"spoiler\">\n<summary>Calc build output &#8212; 3<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ build\/calc.o build\/input.o build\/scicomm.o build\/scidisp.o build\/scifunc.o build\/scikeys.o build\/scimath.o build\/scimenu.o build\/scioper.o build\/sciproc.o build\/sciset.o build\/scistat.o build\/unifunc.o build\/wassert.o  -L..\\ratpak\\build -Llib -lratpak -lgdi32 -lhtmlhelp -o build\/calc lib\/htmlhelp.lib(o:\/w8rtm.obj.amd64fre\/enduser\/helpengines\/htmlhelp\/src\/htmlhelp\/objfre\/amd64\/init.obj):(.text[HtmlHelpW]+0xe0): undefined reference to `__security_check_cookie' lib\/htmlhelp.lib(o:\/w8rtm.obj.amd64fre\/enduser\/helpengines\/htmlhelp\/src\/htmlhelp\/objfre\/amd64\/init.obj):(.text[HtmlHelpA]+0xe0): undefined reference to `__security_check_cookie' lib\/htmlhelp.lib(o:\/w8rtm.obj.amd64fre\/enduser\/helpengines\/htmlhelp\/src\/htmlhelp\/objfre\/amd64\/init.obj):(.text[?GetRegisteredLocation@@YAHPEAD@Z]+0x111): undefined reference to `__security_check_cookie' lib\/htmlhelp.lib(o:\/w8rtm.obj.amd64fre\/enduser\/helpengines\/htmlhelp\/src\/htmlhelp\/objfre\/amd64\/init.obj):(.xdata[$unwind$HtmlHelpW]+0x10): undefined reference to `__GSHandlerCheck' lib\/htmlhelp.lib(o:\/w8rtm.obj.amd64fre\/enduser\/helpengines\/htmlhelp\/src\/htmlhelp\/objfre\/amd64\/init.obj):(.xdata[$unwind$HtmlHelpA]+0x10): undefined reference to `__GSHandlerCheck' lib\/htmlhelp.lib(o:\/w8rtm.obj.amd64fre\/enduser\/helpengines\/htmlhelp\/src\/htmlhelp\/objfre\/amd64\/init.obj):(.xdata[$unwind$?GetRegisteredLocation@@YAHPEAD@Z]+0x18): undefined reference to `__GSHandlerCheck' collect2.exe: error: ld returned 1 exit status make: *** [build\/calc] Error 1<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0435\u0449\u0435 \u043d\u0435\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 c <code>__security_check_cookie<\/code> \u0438 <code>__GSHandler_Check<\/code>. \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0444\u043b\u0430\u0433\u043e\u043c <code>\/GS<\/code> \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Visual Studio, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432\u0437\u044f\u043b <code>htmlhelp<\/code> \u0438\u0437 Windows SDK 8.0. <code>\/GS<\/code> \u0444\u043b\u0430\u0433 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c \u00a0<code>-fstack-protector-strong<\/code> \u0434\u043b\u044f GCC. \u0421\u043e\u043e\u0442\u0432\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0438 <code>__security_check_cookie<\/code> \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u2013 <code>-lbufferoverflowu<\/code> (\u0438\u0437 SDK), \u0430 \u0434\u043b\u044f <code>__GSHandler_Check<\/code> \u2013 <code>-lruntmchk<\/code>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u0438\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 <code>gshandler.obj<\/code>, \u044d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0446\u0435\u043b\u043e\u043c <code>htmlhelp<\/code> \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432\u0438\u043d\u0434\u043e\u0432\u0441\u043e\u0432\u0441\u043a\u0438\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c, \u0447\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c <code>htmlhelp<\/code> \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432. \u041f\u043e\u0438\u0441\u043a \u043c\u0435\u043d\u044f \u043f\u0440\u0438\u0432\u0435\u043b \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438:<\/p>\n<pre><code>NT\\enduser\\stuff\\hhctrl\\<\/code><\/pre>\n<p>\u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u043a\u0443\u0447\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0445\u0435\u0434\u0435\u0440 <code>htmlhelp.h<\/code>. \u041e\u0441\u043e\u0437\u043d\u0430\u0432, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u043c\u043d\u043e\u0433\u043e, \u0440\u0435\u0448\u0438\u043b \u0432\u0441\u0435 \u044d\u0442\u043e \u043e\u0442\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u0442\u043e\u043c, \u043d\u043e, c\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435, \u0443\u0432\u0438\u0434\u0435\u043b \u043f\u0430\u043f\u043a\u0443 <code>htmlhelp<\/code>.<\/p>\n<pre><code>NT\\enduser\\stuff\\htmlhelp\\<\/code><\/pre>\n<p>\u0417\u0430\u0433\u043b\u044f\u043d\u0443\u0432 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u044c, \u0443\u0432\u0438\u0434\u0435\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b <code>init.cpp<\/code>. \u0420\u0435\u0448\u0438\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0432 <code>Makefile<\/code> \u043e\u0442 <code>ratpak<\/code> \u0438, \u043a \u043c\u043e\u0435\u043c\u0443 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u044e, \u043e\u043d\u0430 \u0441\u043e\u0431\u0440\u0430\u043b\u0430\u0441\u044c \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c!<\/p>\n<details class=\"spoiler\">\n<summary>Htmlhelp build output &#8212; 1<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>mkdir build g++ -c  -I..\\hhctrl -Os -o build\/init.o  init.cpp ar ru build\/htmlhelp.lib build\/init.o ar: creating build\/htmlhelp.lib ranlib build\/htmlhelp.lib<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0411\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0432 \u043f\u0443\u0442\u044c \u043a \u044d\u0442\u043e\u0439 \u043b\u0438\u0431\u0435 \u0432 <code>Makefile<\/code> \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u043e\u0431\u0440\u0430\u043b\u043e\u0441\u044c \u0438 \u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e.<\/p>\n<pre><code>LIBDIR = -L..\\ratpak\\build -L..\\..\\..\\..\\enduser\\stuff\\htmlhelp\\build<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Calc build output &#8212; 4<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/calc.o  calc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/input.o  input.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scicomm.o  scicomm.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scidisp.o  scidisp.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scifunc.o  scifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scikeys.o  scikeys.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scimath.o  scimath.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scimenu.o  scimenu.c In file included from calc.c:29: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from calc.c:26: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  In file included from input.c:14: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from input.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  In file included from scicomm.c:15: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69scidisp.c:14,                  from : scicalc.h:29unifunc.h:6:,                  from  scicomm.c:13warning: : \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scidisp.c:13: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  In file included from scikeys.c:3: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scikeys.c:1: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  In file included from scimath.c:4: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scimath.c:1 scimenu.c:26C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668::  unifunc.h:6: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scimenu.c:25: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scioper.o  scioper.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/sciproc.o  sciproc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/sciset.o  sciset.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/scistat.o  scistat.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/unifunc.o  unifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -O0 -o build\/wassert.o  wassert.c In file included from sciset.c:22: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from sciset.c:21: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  In file included from scistat.c:35: unifunc.h:6: warning: \"ARRAYSIZE\" redefined  #define ARRAYSIZE(x)   (sizeof(x) \/ sizeof(*x))  In file included from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/minwindef.h:163,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windef.h:8,                  from C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/windows.h:69,                  from scicalc.h:29,                  from scistat.c:33: C:\/Qt\/Tools\/mingw810_64\/x86_64-w64-mingw32\/include\/winnt.h:668: note: this is the location of the previous definition  #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)  g++ build\/calc.o build\/input.o build\/scicomm.o build\/scidisp.o build\/scifunc.o build\/scikeys.o build\/scimath.o build\/scimenu.o build\/scioper.o build\/sciproc.o build\/sciset.o build\/scistat.o build\/unifunc.o build\/wassert.o  -L..\\ratpak\\build -L..\\..\\..\\..\\enduser\\stuff\\htmlhelp\\build -lratpak -lgdi32 -lhtmlhelp -o build\/calc<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0418\u0442\u043e\u0433\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0431\u0438\u043b\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0430\u0440\u0443 \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0438\u043a\u0441\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u0443\u0431\u0440\u0430\u0442\u044c \u0432\u0430\u0440\u043d\u0438\u043d\u0433\u0438, \u0443\u0434\u0430\u043b\u0438\u043c #define ARRAYSIZE(x)\u00a0\u00a0 (sizeof(x) \/ sizeof(*x)) \u0438\u0437 <code>unifunc.h<\/code>. <\/p>\n<p>\u0418 \u0432\u043a\u043b\u044e\u0447\u0438\u043c <code>Os<\/code> \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<pre><code>OPT = -Os<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Calc build output &#8212; 5<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/calc.o  calc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/input.o  input.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scicomm.o  scicomm.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scidisp.o  scidisp.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scifunc.o  scifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scikeys.o  scikeys.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scimath.o  scimath.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scimenu.o  scimenu.c calc.c: In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)': calc.c:232:48: warning: iteration 84 invokes undefined behavior [-Waggressive-loop-optimizations]              rgpsz[nx] = psz + (INT_PTR)rgpsz[nx];                                         ~~~~~~~~^ calc.c:231:26: note: within this loop          for (nx = 0 ; nx &lt;= CSTRINGS ; nx++) g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scioper.o  scioper.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/sciproc.o  sciproc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/sciset.o  sciset.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scistat.o  scistat.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/unifunc.o  unifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/wassert.o  wassert.c sciset.c: In function 'void ActivateButtons()': sciset.c:51:29: warning: iteration 7 invokes undefined behavior [-Waggressive-loop-optimizations]                  EnableWindow( GetDlgItem(g_hwndDlg, aDecOnlyKeys[i]),                  ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                bDecMode );                                ~~~~~~~~~~ sciset.c:49:28: note: within this loop              for ( i = 0; i &lt;= ARRAYSIZE(aDecOnlyKeys) ; i++ )                             ^ g++ build\/calc.o build\/input.o build\/scicomm.o build\/scidisp.o build\/scifunc.o build\/scikeys.o build\/scimath.o build\/scimenu.o build\/scioper.o build\/sciproc.o build\/sciset.o build\/scistat.o build\/unifunc.o build\/wassert.o build\/calc.rc.o -L..\\ratpak\\build -L..\\..\\..\\..\\enduser\\stuff\\htmlhelp\\build -lratpak -lgdi32 -lhtmlhelp -o build\/calc<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u043b\u0430\u0433 <code>-fno-aggressive-loop-optimizations<\/code>.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e \u0438\u043c\u0435\u0435\u043c \u0447\u0438\u0441\u0442\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>Calc build output &#8212; 6<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/calc.o  calc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/input.o  input.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scicomm.o  scicomm.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scidisp.o  scidisp.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scifunc.o  scifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scikeys.o  scikeys.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scimath.o  scimath.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scimenu.o  scimenu.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scioper.o  scioper.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/sciproc.o  sciproc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/sciset.o  sciset.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/scistat.o  scistat.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/unifunc.o  unifunc.c g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -o build\/wassert.o  wassert.c g++ build\/calc.o build\/input.o build\/scicomm.o build\/scidisp.o build\/scifunc.o build\/scikeys.o build\/scimath.o build\/scimenu.o build\/scioper.o build\/sciproc.o build\/sciset.o build\/scistat.o build\/unifunc.o build\/wassert.o build\/calc.rc.o -L..\\ratpak\\build -L..\\..\\..\\..\\enduser\\stuff\\htmlhelp\\build -lratpak -lgdi32 -lhtmlhelp -o build\/calc<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h2>\u0417\u0430\u043f\u0443\u0441\u043a \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430<\/h2>\n<p>\u041f\u043e\u043f\u044b\u0442\u0430\u0432\u0448\u0438\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440, \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/66c\/f4a\/d45\/66cf4ad451d96351d61c2a2bdd53f696.PNG\" width=\"991\" height=\"526\"\/><\/figure>\n<p>\u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043b\u0438\u043d\u043a\u0435\u0440\u0443 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0443 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e. \u0414\u043b\u044f GCC \u044d\u0442\u043e <code>-mwindows<\/code>.<\/p>\n<pre><code>LDFLAGS = $(LIBDIR) $(LIBS) -fno-aggressive-loop-optimizations -mwindows<\/code><\/pre>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u043d\u043e \u043d\u0435 \u0432\u0438\u0434\u0438\u043c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u043a\u043e\u043d. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u0434\u0430\u0447 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432 <code>calc<\/code> \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0430\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b5d\/c9f\/e1f\/b5dc9fe1f3d5ddb70917cd7a92edee83.PNG\" width=\"431\" height=\"25\"\/><\/figure>\n<p>\u0422.\u0435. \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u043e\u0441\u044c, \u043d\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0414\u043b\u044f \u041e\u0421 Windows \u0434\u0430\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c <code>.rc<\/code>. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c <code>calc.rc<\/code> \u0444\u0430\u0439\u043b, \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>calc.rc.o<\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u043c. \u0412 \u043f\u0430\u043a\u0435\u0442\u0435 MinGW-64 \u0435\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 <code>windres<\/code>, \u0435\u0433\u043e \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c <code>calc.rc<\/code> \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code>windres calc.rc -o build\/calc.rc.o<\/code><\/pre>\n<p>\u0412\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<pre><code>calc.rc:12:10: fatal error: winres.h: No such file or directory  #include \"winres.h\"           ^~~~~~~~~~ compilation terminated. windres: preprocessing failed.<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u0438\u043c <code>winres.h<\/code> \u043d\u0430 <code>windows.h<\/code> \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0435\u0442, \u0438 \u0432 <code>build<\/code> \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>calc.rc.o<\/code>.<\/p>\n<p>1) \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 Makefile \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0438 <code>.rc.o<\/code>:<\/p>\n<pre><code>RC = windres RES_SOURCES = calc.rc  RES_OBJ = $(addprefix $(BUILD_DIR)\/,$(notdir $(RES_SOURCES:.rc=.rc.o)))  $(BUILD_DIR)\/%.o: %.rc Makefile | $(BUILD_DIR)  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(RC) $^ -o $@  $(BUILD_DIR)\/$(TARGET): $(OBJECTS) Makefile \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(CC) $(OBJECTS) $(RES_OBJ) $(LDFLAGS) -o $@<\/code><\/pre>\n<p>\u042f \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u0438\u043b\u0434 <code>.rc<\/code> \u0444\u0430\u0439\u043b\u0430 \u0432 <code>Makefile<\/code>, \u043d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u0447\u0435\u0440\u0435\u0437 Makefile (\u0435\u0433\u043e \u0431\u0438\u043b\u0434 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0447\u0435\u0440\u0435\u0437 <code>windres<\/code>. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043b\u043e\u0441\u044c, \u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 <code>build<\/code> \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a <code>calc.exe<\/code>. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0435\u0435, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0430\u0448\u0435 \u0441\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/591\/465\/7f8\/5914657f88b70fb9c955d1a9f7c083e8.png\" width=\"955\" height=\"435\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/591\/465\/7f8\/5914657f88b70fb9c955d1a9f7c083e8.png\"\/><\/figure>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u043b\u0430\u0433 <code>\u2013Wall<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c:<\/p>\n<details class=\"spoiler\">\n<summary>Last calc build output<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/calc.o  calc.c In file included from scimath.h:22,                  from scicalc.h:31,                  from calc.c:26: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  calc.c: In function 'void EverythingResettingNumberSetup()': calc.c:496:19: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]      for( i = 0; i &lt; ARRAYSIZE(ghnoParNum); i++ )                    ^ calc.c:500:19: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]      for( i = 0; i &lt; ARRAYSIZE(ghnoPrecNum); i++ )                    ^ calc.c: In function 'void InitSciCalc(BOOL)': calc.c:676:23: warning: suggest parentheses around assignment used as truth value [-Wparentheses]          if (hDispEdit = GetDlgItem(g_hwndDlg, IDC_DISPLAY))              ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ calc.c:519:13: warning: unused variable 'nLastSepLen' [-Wunused-variable]      int     nLastSepLen;              ^~~~~~~~~~~ calc.c:521:13: warning: unused variable 'hMenu' [-Wunused-variable]      HMENU   hMenu;              ^~~~~ calc.c: In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)': calc.c:237:22: warning: 'psz' may be used uninitialized in this function [-Wmaybe-uninitialized]              LocalFree(psz);              ~~~~~~~~~^~~~~ g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/input.o  input.c In file included from scimath.h:22,                  from scicalc.h:31,                  from input.c:13: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scicomm.o  scicomm.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scicomm.c:13: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  scicomm.c: In function 'void RealProcessCommands(WPARAM)': scicomm.c:295:12: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]          if (nLastCom >= IDC_AND &amp;&amp; nLastCom &lt;= IDC_PWR)             ^ scicomm.c:421:20: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]                  if ((nLastCom >= IDC_AND) &amp;&amp; (nLastCom &lt;= IDC_PWR))                     ^ scicomm.c:502:32: warning: suggest parentheses around assignment used as truth value [-Wparentheses]                  while (nOpCode = nPrecOp[--nPrecNum])                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scidisp.o  scidisp.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scidisp.c:13: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  scidisp.c: In function 'void DisplayNum()': scidisp.c:90:12: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]          if ( ghnoNum )             ^ g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scifunc.o  scifunc.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scifunc.c:36: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scikeys.o  scikeys.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scikeys.c:1: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scimath.o  scimath.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scimath.c:3: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  scimath.c: In function 'int QuickLog2(int)': scimath.c:61:15: warning: suggest parentheses around assignment used as truth value [-Wparentheses]      if ( iNum = iNum >> 1 )           ~~~~~^~~~~~~~~~~ scimath.c:64:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]          while ( iNum = iNum >> 1 )                  ~~~~~^~~~~~~~~~~ scimath.c: In function 'void UpdateMaxIntDigits()': scimath.c:90:9: warning: variable 'iRemainderBits' set but not used [-Wunused-but-set-variable]      int iRemainderBits;          ^~~~~~~~~~~~~~ scimath.c: In function 'void BaseOrPrecisionChanged()': scimath.c:112:17: warning: unused variable 'dwWordBitWidth' [-Wunused-variable]      extern LONG dwWordBitWidth;                  ^~~~~~~~~~~~~~ g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scimenu.o  scimenu.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scimenu.c:25: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scioper.o  scioper.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scioper.c:17: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  scioper.c:26:53: warning: \"\/*\" within comment [-Wcomment]  * Routines to perform standard operations &amp;|^~&lt;&lt;>>+-\/*% and pwr.  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/sciproc.o  sciproc.c In file included from scimath.h:22,                  from scicalc.h:31,                  from sciproc.c:25: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/sciset.o  sciset.c In file included from scimath.h:22,                  from scicalc.h:31,                  from sciset.c:21: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  sciset.c: In function 'void ActivateButtons()': sciset.c:49:28: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]              for ( i = 0; i &lt;= ARRAYSIZE(aDecOnlyKeys) ; i++ )                             ^ g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/scistat.o  scistat.c In file included from scimath.h:22,                  from scicalc.h:31,                  from scistat.c:33: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  scistat.c: In function 'void SetStat(BOOL)': scistat.c:100:17: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]      for ( i=0; i&lt;ARRAYSIZE(aStatOnlyKeys); i++)                  ^ g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/unifunc.o  unifunc.c In file included from scimath.h:22,                  from scicalc.h:31,                  from unifunc.c:13: ..\\ratpak\\ratpak.h:1: warning: ignoring #pragma warning  [-Wunknown-pragmas]  #pragma warning( disable : 4200 )  g++ -c -DWIN32 -DW3 -DWINNT -DUNICODE -D_UNICODE -DUSE_MIRRORING -I..\\ratpak -I..\\inc  -Os -fno-aggressive-loop-optimizations -Wall -o build\/wassert.o  wassert.c g++ build\/calc.o build\/input.o build\/scicomm.o build\/scidisp.o build\/scifunc.o build\/scikeys.o build\/scimath.o build\/scimenu.o build\/scioper.o build\/sciproc.o build\/sciset.o build\/scistat.o build\/unifunc.o build\/wassert.o build\/calc.rc.o -L..\\ratpak\\build -L..\\..\\..\\..\\enduser\\stuff\\htmlhelp\\build -lratpak -lgdi32 -lhtmlhelp -mwindows -o build\/calc<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0422\u0443\u0442 \u0432\u0438\u0434\u0438\u043c \u043e\u0449\u0443\u0442\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439, \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445:<\/p>\n<ol>\n<li>\n<p>unknown-pragmas (#pragma warning)<\/p>\n<\/li>\n<li>\n<p>sign-compare<\/p>\n<\/li>\n<li>\n<p>parentheses<\/p>\n<\/li>\n<li>\n<p>unused-variable<\/p>\n<\/li>\n<li>\n<p>maybe-uninitialized<\/p>\n<\/li>\n<li>\n<p>dangling-else<\/p>\n<\/li>\n<li>\n<p>unused-but-set-variable<\/p>\n<\/li>\n<\/ol>\n<p>\u0422.\u0435. \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u044f\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u043e\u0432 \u0431\u044b\u043b\u0438 \u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430\u043c\u0438, \u0442\u0430\u043a \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u043c\u0438.<\/p>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0444\u0430\u0439\u043b\u043e\u0432 Makefile.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421alc final Makefile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>TARGET = calc BUILD_DIR = build OPT = -Os CC = g++ RC = windres  C_SOURCES = calc.c      \\             input.c     \\             scicomm.c   \\             scidisp.c   \\             scifunc.c   \\             scikeys.c   \\             scimath.c   \\             scimenu.c   \\             scioper.c   \\             sciproc.c   \\             sciset.c    \\             scistat.c   \\             unifunc.c   \\             wassert.c  RES_SOURCES = calc.rc  C_DEFS = -DWIN32 \\          -DW3 \\          -DWINNT \\          -DUNICODE \\          -D_UNICODE \\          -DUSE_MIRRORING  C_INCLUDES = -I..\\ratpak \\              -I..\\inc \\  CFLAGS += $(C_DEFS) $(C_INCLUDES) $(OPT) -fno-aggressive-loop-optimizations -Wall  LIBS = -lratpak -lgdi32 -lhtmlhelp LIBDIR = -L..\\ratpak\\build -L..\\..\\..\\..\\enduser\\stuff\\htmlhelp\\build LDFLAGS = $(LIBDIR) $(LIBS) -mwindows  OBJECTS = $(addprefix $(BUILD_DIR)\/,$(notdir $(C_SOURCES:.c=.o))) RES_OBJ = $(addprefix $(BUILD_DIR)\/,$(notdir $(RES_SOURCES:.rc=.rc.o)))  $(BUILD_DIR)\/%.o: %.c Makefile | $(BUILD_DIR)  $(CC) -c $(CFLAGS) -o $@  $&lt;  $(BUILD_DIR)\/%.o: %.rc Makefile | $(BUILD_DIR)  $(RC) $^ -o $@  $(BUILD_DIR)\/$(TARGET): $(OBJECTS) Makefile $(CC) $(OBJECTS) $(RES_OBJ) $(LDFLAGS) -o $@  $(BUILD_DIR): mkdir $@  all:  $(TARGET)  clean: -rm -fR $(BUILD_DIR) <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>Ratpak final Makefile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>TARGET = ratpak.lib BUILD_DIR = build OPT = -Os  C_SOURCES = rat.c \\ num.c \\ conv.c \\ debug.c \\ itrans.c \\ trans.c \\ transh.c \\ itransh.c \\ logic.c \\ fact.c \\ basex.c \\ exp.c \\ support.c \\  CC = g++  C_DEFS = -DWIN32 \\  -DW3 \\  -DWINNT \\  -DUNICODE \\  -D_UNICODE \\  -DNOMINMAX  C_INCLUDES = -I.  CFLAGS += $(C_DEFS) $(C_INCLUDES) $(OPT)  all: $(BUILD_DIR)\/$(TARGET)  OBJECTS = $(addprefix $(BUILD_DIR)\/,$(notdir $(C_SOURCES:.c=.o))) vpath %.c $(sort $(dir $(C_SOURCES)))  $(BUILD_DIR)\/%.o: %.c Makefile | $(BUILD_DIR)  $(CC) -c $(CFLAGS) -o $@  $&lt;  $(BUILD_DIR)\/$(TARGET): $(OBJECTS) ar ru $@ $^ ranlib $@  $(BUILD_DIR): mkdir $@  clean: -rm -fR $(BUILD_DIR)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>Htmlhelp final Makefile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>TARGET = htmlhelp.lib BUILD_DIR = build OPT = -Os  C_SOURCES = init.cpp  CC = g++  C_DEFS =  C_INCLUDES = -I..\\hhctrl  CFLAGS += $(C_DEFS) $(C_INCLUDES) $(OPT)  all: $(BUILD_DIR)\/$(TARGET)  OBJECTS = $(addprefix $(BUILD_DIR)\/,$(notdir $(C_SOURCES:.cpp=.o)))  $(BUILD_DIR)\/%.o: %.cpp Makefile | $(BUILD_DIR)  $(CC) -c $(CFLAGS) -o $@  $&lt;  $(BUILD_DIR)\/$(TARGET): $(OBJECTS) ar ru $@ $^ ranlib $@  $(BUILD_DIR): mkdir $@  clean: -rm -fR $(BUILD_DIR)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0438\u043c\u0435\u0435\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 Windows XP \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GCC x64, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Windows.\u00a0\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430, \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044e\u0449\u0435\u0433\u043e 18.7 \u041c\u0411\u0430\u0439\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438, \u043e\u043d \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 1.0 \u041c\u0411\u0430\u0439\u0442.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cea\/c58\/783\/ceac5878378a42655907e8e4e03ad312.PNG\" width=\"434\" height=\"47\"\/><\/figure>\n<p>\u0421\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043c\u0435\u043d\u044e help, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 <code>hhctrl<\/code>, \u043d\u043e \u0435\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0443\u0436\u0435 \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0438\u0434\u0435\u0438, \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u043b\u043e \u0431\u044b \u0435\u0449\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0437 Windows XP, \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u044b\u043b\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439. \u0412\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/articles\/755752\/\"> https:\/\/habr.com\/ru\/articles\/755752\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440<\/h2>\n<p>\u0412\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0432\u00a0\u0441\u0442\u0430\u0442\u044c\u0435, \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u00a0\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. Windows \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c Microsoft.<\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442 \u0432\u0441\u0435\u043c.<\/p>\n<p>\u0412 2020 \u0433\u043e\u0434\u0443 \u043c\u0438\u0440 <a href=\"https:\/\/habr.com\/ru\/news\/520598\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0431\u043b\u0435\u0442\u0435\u043b\u0430<\/a> \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u043e \u0441\u043b\u0438\u0432\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 Windows XP \u0438 Windows Server 2003 \u043d\u0430 4Chan. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434 \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0437\u043e\u0448\u0435\u043b\u0441\u044f \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443, \u0432\u043a\u043b\u044e\u0447\u0430\u044f GitHub, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 Microsoft. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/news\/520746\/\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u0440\u044b<\/a> \u043f\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 \u043a\u043e\u0434\u0430, \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u0430\u0439\u0442\u044b \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0431\u044b\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0438\u0437 \u043f\u043e\u0438\u0441\u043a\u0430.<\/p>\n<p>\u041a\u0430\u043a\u043e\u0432 \u0436\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043d\u0430 2023 \u0433\u043e\u0434? \u041a\u0430\u043a \u043d\u0438 \u043f\u0430\u0440\u0430\u0434\u043e\u043a\u0441\u0430\u043b\u044c\u043d\u043e, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 GitHub \u0438 \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0422\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0432, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/rentry.co\/build-win2k3\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/a> \u0438 \u0432\u0438\u0434\u0435\u043e, \u043a\u0430\u043a \u0432\u0441\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0434\u0443\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0421\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u041e\u0421 \u043e\u0442 Microsoft, Windows XP \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043c\u043e\u0438\u0445 \u043b\u044e\u0431\u0438\u043c\u044b\u0445 \u041e\u0421. \u041e\u043d\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u044b\u0441\u0442\u0440\u0430\u044f, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u0430\u044f, \u043d\u043e \u0432 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0447\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c C \u0438 \u0421++, \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u0430\u043d\u043d\u043e\u0439 \u041e\u0421.<\/p>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f XP \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 6 \u0413\u0431\u0430\u0439\u0442. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 <code>cloc<\/code>, \u043f\u043e\u0441\u043b\u0435 10 \u043c\u0438\u043d\u0443\u0442 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<pre><code>--------------------------------------------------------------------------------------- Language                             files          blank        comment           code --------------------------------------------------------------------------------------- C++                                  36430        5030975        5385465       17679581 C                                    24034        4511368        4689267       14461873 C\/C++ Header                         53285        2603380        2377970        7988097 Text                                  8371         588113              0        6734137 Assembly                              1542         142153         295195         559390 Windows Resource File                 6511          97268          93360         558215 IDL                                   1356          79239            259         448884 HTML                                  4755          76074          82929         376750 XML                                    607           6987           2423         361834 TNSDL                                 1154          54741            101         330732 INI                                    752          59440          22551         249914 DOS Batch                             2380          36429          21852         205067 Windows Message File                   447          33721          23142         166854 Perl                                  1005          55650          83403         144053 Pascal                                 839          28654          74852         139010 make                                  2125          20797          17273          85174 Visual Basic                           644          18993          62445          72880 Visual Basic Script                    630          17735          15022          68423 Windows Module Definition             3356          11995          10384          68263 JavaScript                             348          17176          14149          62117 ASP                                    562          11884           2473          56997 Logos                                   49           7299          10446          51327 C#                                     174           9105          12755          43936 yacc                                    20           3929           3485          23647 MSBuild script                          73             41              0          22607 Gencat NLS                              44            241              0          18130 PHP                                     70           2489            133          16066 JSX                                     13           3340            880           9911 LLVM IR                                  8            642            550           9803 sed                                    196            262             49           9549 m4                                      20           1699              0           8943 CSS                                     76           1357            269           8159 Java                                    92           2200            626           7791 XSLT                                    55           1324            573           7777 SWIG                                    13           1936            384           7606 SQL                                     34           1343           1667           7506 Expect                                  11           1962              1           7432 Forth                                    6            279             44           6086 Qt                                      29           1237              0           5827 Oracle Forms                             7           1252              0           5811 GLSL                                     1              2              0           5728 lex                                     24            999            262           5494 CSV                                     17             23              0           5055 awk                                     92            523            178           4321 Ruby                                     3            276              0           3755 DAL                                      3            278              2           3747 Prolog                                   3            278             46           3714 Verilog-SystemVerilog                    3            282             44           3699 Lisp                                     4            304            216           3650 Visual Basic .NET                       11            399            652           3591 SKILL                                    1            335              0           2850 Mathematica                             36            142              0           2135 DTD                                     22            621            407           2087 Ring                                    14            343            355           1854 ASP.NET                                  4            312             13           1756 Bourne Shell                            10            240            273           1642 Igor Pro                                 3              0              0           1494 Visual Studio Solution                  70              0              0           1415 Markdown                                 1              5              0           1407 D                                       14            320           3649            882 XSD                                      9             76            174            734 Oracle PL\/SQL                            2            222            153            656 MATLAB                                   8             66            104            560 ProGuard                                 1             60             87            505 TeX                                     16             44              0            248 WebAssembly                              2             32              0            239 Smalltalk                                5              9              0            211 R                                       10             23             19            192 ReScript                                 1              1              0            184 SAS                                      2             38             89            168 COBOL                                    1             35              2            141 Scheme                                   2              6              0            119 reStructuredText                         4              2              0             40 TypeScript                               1              0              0             33 F#                                       1              5              0             22 DenizenScript                            1              7             13              9 Nemerle                                  1              0              0              5 Oracle Reports                           1              1              0              5 --------------------------------------------------------------------------------------- SUM:                                152527       13551018       13313115       51160506 ---------------------------------------------------------------------------------------<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u0435\u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 C, \u0421++ \u0438 assembly, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430 40.7 \u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a.  \u0418\u0437 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 <a href=\"https:\/\/rentry.co\/build-win2k3\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/a> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043a\u043e\u043b\u043e 70 % \u043a\u043e\u0434\u0430 \u0432\u0441\u0435\u0439 \u041e\u0421, \u0442.\u0435. \u0438\u0442\u043e\u0433\u043e\u0433\u043e\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0446\u0435\u043d\u0435\u043d\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 <strong>58 \u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a.<\/strong><\/p>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c 41 \u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u0447\u0430\u0442\u044c \u0441 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0412\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/microsoft\/calculator\/\" rel=\"noopener noreferrer nofollow\">\u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440<\/a>. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d? \u0412\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a <a href=\"https:\/\/github.com\/microsoft\/calculator\/blob\/main\/README.md#diagnostic-data\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443<\/a> :).<\/p>\n<p>\u0412 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f, \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u043e\u0442 \u041c\u0430\u0439\u043a\u0440\u043e\u0441\u043e\u0444\u0442 \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c \u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436 \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GCC x64.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f:<\/p>\n<ol>\n<li>\n<p>\u0425\u043e\u0441\u0442 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 Windows. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Windows 10.<\/p>\n<\/li>\n<li>\n<p>Qt. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043a\u0430\u043a QtCreator, \u0442\u0430\u043a \u0438 \u043f\u043e\u0440\u0442 GCC \u0434\u043b\u044f Windows MinGW-64. \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b \u043e\u0431\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Qt Maintanance Tool. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 Path.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>Makefile<\/code>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <code>make<\/code>.<\/p>\n<\/li>\n<\/ol>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440<\/h2>\n<p>\u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>cloc<\/code>:<\/p>\n<pre><code>----------------------------------------------------------------------------------- Language                         files          blank        comment           code<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-352657","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/352657","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=352657"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/352657\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=352657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=352657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=352657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}