Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C++. Π‘Π±ΠΎΡ€Π½ΠΈΠΊ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ²Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 27

Автор Π”. БтСфСнс

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ΠΎΠ² инструмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π΄Π°ΠΆΠ΅ с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ оптимизациями ΠΈ встраиваниСм, хотя Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях отладочная информация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСсовмСстимой с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Однако ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ компилятор ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² порядок слСдования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ внСшнС Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ останСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ слоТной, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ этом тСряСтся строгоС соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ частями исходного ΠΊΠΎΠ΄Π° ΠΈ мСстами располоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΆΠ΅ Π²Π΅Ρ€Π½ΠΎ ΠΈ для встраивания: ΠΊΠΎΠ³Π΄Π° компилятор раскрываСт Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, гСнСрируСтся Π² Ρ‚Π΅Π»Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого ΠΊΠΎΠ΄Π° для встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ создаСтся стСкового Ρ„Ρ€Π΅ΠΉΠΌΠ°. Помимо всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½Π΅ смоТСт ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΅Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎ мСстах Π² исходном ΠΊΠΎΠ΄Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π»Π°ΠΌ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

По этим ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ создании ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ сборки принято ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ встраиваниС.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈ Ρ‚Π°ΠΊΠΆΠ΅

Π Π΅Ρ†Π΅ΠΏΡ‚ 1.22.

1.22. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСбольшой быстрый исполняСмый Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для распространСния срСди ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Π΅ΠΉ.

РСшСниС

Π’ основном для получСния ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки трСбуСтся:

β€’ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ;

β€’ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ встраиваСмых (inline) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;

β€’ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π’ Ρ‚Π°Π±Π» 1.26 прСдставлСны ΠΎΠΏΡ†ΠΈΠΈ компилятора ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ встраиваниС. ΠžΠΏΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π΅ сущСствуСт: ΠΏΡ€ΠΈ сборкС ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки отладочная информация ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. Однако ΠΏΡ€ΠΈ использовании инструмСнтария GCC Ρ€Π°Π·ΠΌΠ΅Ρ€ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ, ΡƒΠΊΠ°Π·Π°Π² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΡƒ ΠΎΠΏΡ†ΠΈΡŽ -s.


Π’Π°Π±Π». 1.26. ΠžΠΏΡ†ΠΈΠΈ компилятора, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ встраиваниС

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ВстраиваниС GCC -O3 -finline-functionsΒΉ Visual C++ Intel -O2 -Оb1 Metrowerks -opt full -inline auto -inline level=8 Comeau (Unix) -O3 Comeau (Windows) To ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ основного компилятора, Π½ΠΎ вмСсто Ρ‚ΠΈΡ€Π΅ (-) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слСш (/) -inlining Borland -O2 -vi Digital Mars -o+time Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΒΉ Π­Ρ‚Π° опция автоматичСски Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ -O3.


Boost.Build прСдоставляСт ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ создания ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки: просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ трСбованиям Ρ†Π΅Π»ΠΈ <variant>release ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки variant=release, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎ просто release.

НСкоторыС IDE Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ простой способ создания ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки. НапримСр, ΠΊΠ°ΠΊ я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.21, ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Visual C++ IDE автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ сборку, просто Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² мСню Build ΠΎΠΏΡ†ΠΈΡŽ Configuration Manager ΠΈ Π² качСствС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Release. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Release Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° стандартной ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ создана ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ сборка.

Аналогично ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² CodeWarrior с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· шаблонов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Metrowerks, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… «принадлСТности» (stationery), IDE автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π»ΠΈ. Имя ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ, Π½ΠΎ ΠΎΠ½ΠΎ всСгда Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ слово Β«releaseΒ» ΠΈΠ»ΠΈ Β«finalΒ». Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ сборку, Π² мСню Project Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Set Default Target (ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ элСмСнт мСню, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»ΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π»ΡŒ Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС Ρ†Π΅Π»Π΅ΠΉ Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

C++Builder Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΎΠ½ прСдоставляСт простой способ создания ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ сборку, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Project Optionsβ†’Compiler ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° Release. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ всС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ встраиваниС ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈ использовании IDE, которая Π½Π΅ прСдоставляСт Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Dev-C++, ΠΈΠ»ΠΈ Ссли трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ с 1.27 Π΄ΠΎ 1.29.


Π’Π°Π±Π». 1.27. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΠ· IDE

IDE ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Visual C++ На страницС свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Configuration Propertiesβ†’C/C++β†’Optimization ΠΈ установитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Optimization Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Maximize Speed (ΠœΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ быстродСйствиС), Favor Size or Speed (ΠžΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈΠ»ΠΈ скорости) Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Favor Fast Code (ΠžΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ быстротС ΠΊΠΎΠ΄Π°), Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Global Optimizations (Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ оптимизация). Enable Intrinsic Functions (Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) ΠΈ Omit Frame Pointers (НС Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ°) Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Yes (Π”Π°). Для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ Π½Π° этой страницС ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ CodeWarrior Π’ ΠΎΠΊΠ½Π΅ Target Settings ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Code Generationβ†’Global Optimizations (ГСнСрация ΠΊΠΎΠ΄Π°β†’Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ оптимизация) ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Level 4 (Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 4) C++Builder Π’ Project Options ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Compiler, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Code optimization (оптимизация ΠΊΠΎΠ΄Π°) Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Speed (Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ) Dev-C++ Π‘ΠΌ запись для GCC Π² Ρ‚Π°Π±Π». 1 26 ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρƒ 1.20

Π’Π°Π±Π». 1.28. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ встраивания ΠΈΠ· IDE

IDE ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Visual C++ На страницах свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Configuration Propertiesβ†’C/C++β†’Optimization ΠΈ установитС ΠΎΠΏΡ†ΠΈΡŽ Inline Function Expansion (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ встраиваСмых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Any Suitable (ВсС подходящиС) CodeWarrior Π’ ΠΎΠΊΠ½Π΅ Target Settings ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Language Settingsβ†’C/C++ Language. УстановитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Inline Depth (Π“Π»ΡƒΠ±ΠΈΠ½Π° встраивания) Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ встраивания ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π½Π΅ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ C++Builder Π’ Project Options ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Compiler ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Debugging снимитС Ρ„Π»Π°ΠΆΠΎΠΊ Disable inline expansions (ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ встраиваниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) Dev-C++ Π‘ΠΌ. запись для GCC Π² Ρ‚Π°Π±Π». 1.26 ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρƒ 1.20

Π’Π°Π±Π». 1.29. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² IDE

IDE ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Visual C++ На страницах свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Configuration Propertiesβ†’Π‘/Π‘++β†’General ΠΈ для ΠΎΠΏΡ†ΠΈΠΈ Debug Information Formal (Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ) Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Disabled Metrowerks Π’ ΠΎΠΊΠ½Π΅ Target Settings ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Language Settingsβ†’Linkerβ†’Ρ…86 Linker ΠΈ снимитС Ρ„Π»Π°ΠΆΠΊΠΈ Store full paths (Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ). Link debug info (ΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ), ΠΈ Debug inline functions (ΠžΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ встраиваСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) C++Builder Π’ Project Options ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Compiler ΠΈ снимитС Ρ„Π»Π°ΠΆΠΊΠΈ Debug Information ΠΈ Line Number Information (информация ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°Ρ… строк) Dev-C++ Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ. ΠΊΠ°ΠΊ описано Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ 1.20 Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° опция ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки -g ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π°Π±ΠΎΡ€ΠΎΠ² инструмСнтов ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько ΠΎΠΏΡ†ΠΈΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΠΆΠ΅ дСсятки. КакиС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, зависит ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. НапримСр, Π²ΠΎ встраиваСмых систСмах ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ†Π΅Π½ΠΎΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ скорости приводят ΠΊ созданию ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒΡΡ скорости. НСкоторыС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ быстрСС Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ быстрСС, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части β€” ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅.