Сижу на Visual Studio 2013. Пробовал в каком-то году перейти на Visual Studio 2015, компилятор крашился на чём-то в моём проекте, поэтому я отложил тогда переход на новую студию. На прошедших выходных предпринял попытку перейти на Visual Studio 2017 15.6. В итоге, опять крашится компилятор, отправил два багрепорта в Микрософт. Полистал сегодня их форум, смотрю ошибки они быстро не исправляют, некоторые по несколько месяцев висят в состоянии Under Investigation.
В своё время я задолбался с ошибками Borland C++ Builder'а и так перешёл на Visual Studio. Вот чувствую ситуация опять повторяется, я опять задобался с ошибками. Только на что переходить? Объективно Visual Studio очень удобная среда разработки.
Я думаю об Intel Parallel Studio. Прикрутить Intel Parallel Studio 2018 к Visual Studio 2017. Последний раз я пользовался связкой двух студий лет 5 назад. Остались положительные впечатления. Подскажите, пожалуйста, те у кого есть личный опыт текущего использования Intel Parallel Studio 2018, как там дела обстоят с C++14, C++17, как со стабильностью компилятора на текущий момент? Можно конечно поставить и самому попробовать, но не хочется систему лишний раз засорять, вдруг там тоже баги сплошные, а мне лишняя трата времени.
Зачем мне это нужно? Завидую шлангистам, они вовсю код пишут с модными плюшками, а в Visual Studio 2013 даже констэкспры нет, не говоря уж обо всём остальном.
Здравствуйте, 3m-soft, Вы писали:
3S>Завидую шлангистам, они вовсю код пишут с модными плюшками, а в Visual Studio 2013 даже констэкспры нет, не говоря уж обо всём остальном.
В VS 2017 в качестве второго компилятора C++ используется clang (правда, не самой последней версии, но по крайней мере C++14 он на достаточно неплохом уровне поддерживает).
Здравствуйте, Constructor, Вы писали:
C>Здравствуйте, 3m-soft, Вы писали:
3S>>Завидую шлангистам, они вовсю код пишут с модными плюшками, а в Visual Studio 2013 даже констэкспры нет, не говоря уж обо всём остальном.
C>В VS 2017 в качестве второго компилятора C++ используется clang (правда, не самой последней версии, но по крайней мере C++14 он на достаточно неплохом уровне поддерживает).
Спасибо, Clang я пока не рассматриваю. Завидую, но не рассматриваю.
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, 3m-soft, Вы писали:
3S>>Спасибо, Clang я пока не рассматриваю. Завидую, но не рассматриваю. X>поясните. он же идет уже встроенным в VS2017.
Хм... Я VS2017 только в пятницу впервые поставил. И как там шланг задействовать? А в нём microsoft specific поддерживается? А код нативный получается?
Здравствуйте, 3m-soft, Вы писали:
3S>Хм... Я VS2017 только в пятницу впервые поставил. И как там шланг задействовать?
clang используется как фронтенд. где-то в настройках можно выбрать.
3S>А в нём microsoft specific поддерживается?
врядли... а что, интел поддерживает microsoft specific?
3S>А код нативный получается?
что это значит? не является ли он cygwin`ом?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, 3m-soft, Вы писали:
3S>>Хм... Я VS2017 только в пятницу впервые поставил. И как там шланг задействовать? X>clang используется как фронтенд. где-то в настройках можно выбрать.
3S>>А в нём microsoft specific поддерживается? X>врядли... а что, интел поддерживает microsoft specific?
Я имел ввиду, что в студийных хидерах встречаются microsoft specific keywords. Интеловский компилятор, насколько я помню, их нормально воспринимает.
3S>>А код нативный получается? X>что это значит? не является ли он cygwin`ом?
Тут я просто слышал "звон" что шланг компилирует в промежуточный код под виртуальную машину, а не в нативный код.
Ну вообще, Вы правы. Надо попробовать, тем более если он уже в студии есть. Поищу сегодня, поковыряюсь. Спасибо.
Здравствуйте, 3m-soft, Вы писали:
3S>Я имел ввиду, что в студийных хидерах встречаются microsoft specific keywords. Интеловский компилятор, насколько я помню, их нормально воспринимает.
я, по правде сказать, не в теме microsoft specific keywords и их поддержки интеловским компилятором...
3S>Тут я просто слышал "звон" что шланг компилирует в промежуточный код под виртуальную машину, а не в нативный код.
clang, как и любой фронтенд для с++ — генерит объектный код(на самом деле все несколько сложнее, там еще есть ассемблер, из которого и генерится объектный код), который используется линкером для генерицаа нативного кода.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
X>clang, как и любой фронтенд для с++ — генерит объектный код(на самом деле все несколько сложнее, там еще есть ассемблер, из которого и генерится объектный код), который используется линкером для генерицаа нативного кода.
линкер генерит нативный код только в режиме Link Time Code Generation.
иначе он просто связывает готовые объектники с нативным кодом, выданные компилятором.
Здравствуйте, K13, Вы писали:
K13>линкер генерит нативный код только в режиме Link Time Code Generation. K13>иначе он просто связывает готовые объектники с нативным кодом, выданные компилятором.
да, вы правы, связывает. но в результате, из неисполняемых объектников получаются исполняемые файлы
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, 3m-soft, Вы писали:
3S>Я VS2017 только в пятницу впервые поставил. И как там шланг задействовать?
В настройках проекта для поля General → Platform Toolset выставить Visual Studio 2017 — Clang with Microsoft CodeGen (v141_clang_c2).
Требуемый стандарт языка можно указать через C/C++ → Language → C/C++ Language Standard (выставить, например, C++14 (-std=c++1y)) или через C/C++ → Command Line → Additional Options (-std=c++14 или подобное).
3S>А в нём microsoft specific поддерживается?
Да, в настройках проекта нужно выставить такие значения:
для поля C/C++ → Advanced → Microsoft Compatibility Mode — Yes (-fms-compatibility),
для поля C/C++ → Advanced → Microsoft Extension Support — Yes (-fms-extensions).
Здравствуйте, Constructor, Вы писали:
C>Здравствуйте, 3m-soft, Вы писали:
3S>>Я VS2017 только в пятницу впервые поставил. И как там шланг задействовать? C>В настройках проекта для поля General → Platform Toolset выставить Visual Studio 2017 — Clang with Microsoft CodeGen (v141_clang_c2). C>Требуемый стандарт языка можно указать через C/C++ → Language → C/C++ Language Standard (выставить, например, C++14 (-std=c++1y)) или через C/C++ → Command Line → Additional Options (-std=c++14 или подобное).
3S>>А в нём microsoft specific поддерживается? C>Да, в настройках проекта нужно выставить такие значения: C>
C>для поля C/C++ → Advanced → Microsoft Compatibility Mode — Yes (-fms-compatibility), C>для поля C/C++ → Advanced → Microsoft Extension Support — Yes (-fms-extensions). C>
Ой, спасибо большое. Обязательно попробую вечером. У меня пока только дома 2017 студия установлена.
Здравствуйте, Constructor, Вы писали:
C>Здравствуйте, 3m-soft, Вы писали:
3S>>Я VS2017 только в пятницу впервые поставил. И как там шланг задействовать? C>В настройках проекта для поля General → Platform Toolset выставить Visual Studio 2017 — Clang with Microsoft CodeGen (v141_clang_c2). C>Требуемый стандарт языка можно указать через C/C++ → Language → C/C++ Language Standard (выставить, например, C++14 (-std=c++1y)) или через C/C++ → Command Line → Additional Options (-std=c++14 или подобное).
3S>>А в нём microsoft specific поддерживается? C>Да, в настройках проекта нужно выставить такие значения: C>
C>для поля C/C++ → Advanced → Microsoft Compatibility Mode — Yes (-fms-compatibility), C>для поля C/C++ → Advanced → Microsoft Extension Support — Yes (-fms-extensions). C>
2017 Enterprise, v 15.5.2, нет Clang в Toolset листе, только предыдущие студии.
Надо дополнительно сланг устанавливать?
Здравствуйте, gok, Вы писали:
gok>2017 Enterprise, v 15.5.2, нет Clang в Toolset листе, только предыдущие студии. gok>Надо дополнительно сланг устанавливать?
В установщике Visual Studio отметить галочкой пункт Individual components → Compilers, build tools, and runtimes → Clang/C2 (experimental).
Здравствуйте, Constructor, Вы писали:
C>Здравствуйте, gok, Вы писали:
gok>>2017 Enterprise, v 15.5.2, нет Clang в Toolset листе, только предыдущие студии. gok>>Надо дополнительно сланг устанавливать?
C>В установщике Visual Studio отметить галочкой пункт Individual components → Compilers, build tools, and runtimes → Clang/C2 (experimental).
Update: Desktop development with C++/Individual components
Здравствуйте, gok, Вы писали:
C>>В установщике Visual Studio отметить галочкой пункт Individual components → Compilers, build tools, and runtimes → Clang/C2 (experimental).
gok>Update: Desktop development with C++/Individual components
Есть два места, где можно отметить этот пункт. Ваш вариант расположен на панели Summary справа. Мой вариант — в общем списке всех компонентов (слева, на вкладке Individual components).
Два вечера попыток прикрутить Clang к Visual Studio 2017 не принесли положительного результата:
Вариант №1: Установил Clang/C2 (experimental) из установщика студии. Результат: обламывается компиляция STL. В STL прямо в коде прописана проверка версии шланга и требуется более новая версия.
Вариант №2: Скачал с сайта новую версию шланга и тупо перезаписал clang.exe из студии на новый. Теперь не создаются объектные файлы, потому что из пути что-то выбрасывает слэши. Представьте себе путь к объектному файлу, в котором нет слэшей. Конечно он не может быть создан.
Вариант №3: Хотел воспользоваться батником для интеграции в студию, который идёт в составе со шлангом. Но он не интегрирует в студию 2017, только в 2012, 2013, 2015. Разобрался какие файлы и куда раскладывает этот батник в прошлых студиях и разложил сам вручную в 2017-ой. Этот вариант кривой конечно, потому что настройки компилятора только через ключи и потому что мой проект не собирается из-за придирок к вольностям в коде, которые мне позволял msvc, но, наверное, рабочий.
Короче, буду ждать пока они msvc допилят, чем с кривыми вариантами разбираться.