Установка Visual Studio 2013 для сборки программ

Сначала - и прежде всего - установим компилятор. Но давайте для начала разберемся - что это и зачем оно нам?

Компилятор - это набор программ, который переводит код программы с языка, понятного человеку(также называемого языком высокого уровня) на язык, понятный машине, чтобы та смогла его выполнить, то есть запустить. Процесс этот многоступенчатый, и сначала код переводится на язык низкого уровня(ассемблер), а потом собирается из кубиков в единый исполняемый файл. Зачем нам такие, казалось бы, сложности? Разве разработчики программ уже не сделали это, выложив на своих сайтах готовые к запуску собранные программы? Да, частично они это сделали, и вот почему частично.

Небольшое отступление, чтобы стала понятна суть вопроса и проблем. У каждого из нас в компьютере есть процессор. Более того - и в телефоне, и в планшете, и даже в калькуляторе ЕСТЬ центральный процессор, в том или ином виде. Процессор - в том числе центральный - выполняет инструкции, все остальное - это уже логика программы. У каждого процессора есть один базовый набор инструкций, которые он способен выполнять, это определяет его поколение и семейство, например ARM v7 или x86 intel 686(i686). Но - с выпуском новых моделей процессоров - в них не только увеличивают тактовые частоты работы, но и добавляют новые инструкции. Редко добавляют по одной-две, хотя прецеденты есть, обычно - пачками. Такие "пачки" называют наборами инструкций. Не базовыми наборами, а наборами - и вот в этих деталях и кроется дьявол =) Если процессор увидит инструкцию, которую он не знает - он прекратит исполнение программы. То есть программа "вылетит", еще и с сообщением об ошибке. А в базовом наборе инструкций они, эти инструкции, собственно базовыею Да, на них можно сделать всё, но как быстро? За сколько шагов? Парадокс начался еще в 1980-е годы, когда к процессору можно было докупить и установить - если это позволяла материнская плата - сопроцессор. Математический. Первопроходцем были процессор Intel 8086 и сопроцессор 8087. После Intel 80486 сопроцессор встроен в процессор,и... практически не используется! Подумайте только - Вы копили денег, не мелочились и купили действительно НОВЫЙ "камень"(так в простонародии называется центральный процессор компьютера) - и пользуетесь от силы половиной его возможностей! Все дело в том, что авторы программ - весьма практически оправдано - собирают свои программы из исходных текстов под самый или под самые распространенные конфигурации железа. И их можно понять : особенно под Windows не существует на момент написания статьи, на 10.06.2015, механизма точной доставки сборки под железо клиента. На Linux и FreeBSD в том числе. Поэтому еще и программы из OpenSource(программ с открытым исходным кодом) могут тормозить нещадно - например много нехороших слов летает по сети о собранных разработчиками FireFox, Chrome и Mozilla, которые можно скачать с их сайтов.

Программы распространяются с открытым исходным кодом - для чего? Для того, чтобы каждый мог внести свою правку, убедиться, что в них нет "закладок" и потайных "задних дверей"(backdoor-ов). А также - чтобы каждый смог собрать программу именно под свое железо и программное окружение. И тут еще один момент. Знакома ли Вам ситуация, что у Вас программа работает как часы, а у знакомого - вылетает через раз с ошибкой? А почему? А потому, что у Вас будь хоть идентичное железо, но программное окружение разное. Сборка решает и эту проблему.

Также давайте быстро пробежимся по дополнительным наборам инструкций:

  • 8087/80187/80287/80387 = x87 - первые массовые дополнительные инструкции, которые выполнял сопроцессор. Все мы помним, как появлялись версии программ, особенно математических, которые ускорялись в десятки раз за их счет.
  • MMX = Multi-Media eXtensions - преемник x87 инструкций, расширивший их и ускоривший. Пережил четыре поколения реализации. Отдельно заслуживает упоминание игра отечественных разработчиков Z.A.R. - имея воксельный(!) движок, она в программном режиме на равных конкурировала с западными аналогами, во всю использовавшими OpenGL и 3Dfx Glide. А секрет был именно в полном использовании этих инструкций. Мощность была настолько большой, что они же и первые внедрили внутриигровой голосовой чат.
  • SSE = Streaming SIMD Extensions - спорный преемник MMX, жив до сих пор во многих реализациях. Что такое SIMD? Single Instruction Multiple Data - одной операцией можно перемножить например несколько пар чисел с плавающей точкой. В случае математически интенсивных операций умножение производительности доходит до количества пар операндов(того, что надо перемножить, сложить и.т.п. за один раз)
  • AVX = Advanced Vector Extensions - расширение, созданное специально для ускорение многопоточных сред и приложений.
  • 3DNow! - альтернатива MMX от AMD, в разы более удачная для обработки мультимедиа и трехмерных расчетов. Ее помнят те обладатели Athlon'ов, которые ставили видео и аудио проигрыватели и на более слабых частотах центральных процессоров смотрели и слушали все в отличном качестве без лагов и артефактов. Секрет прост : особенно для видеокодеков "приход" по скорости был в разы по сравнению с центральными процессорами от Intel и Cyrix
  • TSX-NI = Transactional Synchronization Extensions - улучшение для работы с кэшем процессора, ускоряет многопоточные и многозадачные приложения, особенно обрабатывающие средние и более объемы данных из памяти.

Однако тут не перечислено и четверти наборов, весьма широко распространенных в процессорах.... И они действительно помогают и ускоряют - КОГДА ИСПОЛЬЗУЮТСЯ САМИМ ПРИЛОЖЕНИЕМ. И далее идет суровая правда жизни - далеко не все разработчики используют при сборке поддержку этих инструкций. То есть иными словами и простым языком : Вы вложились в новый процессор, но кроме увеличенного объема кэша, количества ядер и тактовой частоты в большинстве случаев на Вас ничего более НЕ работает.


Убедил? - приступим!

Скачиваем с официального сайта дистрибутив компилятора https://www.visualstudio.com/products/visual-studio-community-vs, потом его ставим. Вначале при запуске нас попросят указать путь, согласиться с лицензией и по умолчанию предложат поучаствовать в программе улучшения качества работы программного продукта путем отсылки анонимных отчетов.

Visual Studio 2013 начало установки
Лицензия нам подходит : это личное использование, мы не собираемся собирать и продавать какие-то программы в безумных количествах. Участвовать ли в программе улучшения - скорее да, чем нет. Автор статьи не поставил нижнюю галочку потому, что не пользуется данной средой для основной массы своих разработок, Вам же советую ее поставить : компиляторы тоже программы, и в них тоже есть ошибки. И лучше, чтобы разработчики о них узнавали - только так они смогут оперативно их устранить. Мы же соглашаемся с лицензией и правим путь установки в C:\dev\vs2013 и выглядит потом все вот так :
Выставление пути установки Visual Studio 2013
, далее жмем кнопку Next, которая появится после принятия нами предложенной лицензии(верхняя галочка). На следующем экране нас спросят какие компоненты ставить, по умолчанию стоят все галочки. Если они не стоят по умолчанию - поставьте их все, и вот почему : продукты от Microsoft на памяти автора отличались глюками при частичной их установке, за нечастым исключением. Просто поставьте все галочки и жмите далее INSTALL :

Выбор компонент для установки из дистрибутива Visual Studio 2013Процесс установки Visual Studio 2013Окончание инсталляции Visual Studio 2013


После нажатия кнопки некоторое время пакет будет выкачивать файлы из сети Internet и потом установит их(слайд посередине). В конце процесса установки Вы увидите картинку как на рисунке справа. НЕ запускайте пока что компилятор, нажмите крестик и закройте окно. Если запустили - не страшно, просто закройте его. Тут хочу сделать небольшое замечание : после установки дистрибутива, несмотря на то, что он выкачивал компоненты с сайта Microsoft, и там по идее должны были быть новейшие версии - вскрытие показало, что версии там были далеко не новые. Поэтому установив компилятор - сразу зайдите в панель управления и запустите поиск обновлений Microsoft Update, или просто зайдите на https://update.microsoft.com, чтобы он нашел обновления для компилятора и его компонент. Поставьте их и перезагрузитесь, после этого Вы готовы дальше продолжить загрузку и установку утилит для сборки программ из исходных текстов.
Неопределенный