Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft C/C++ оптимизирующий компилятор

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5

Открыть новую тему     Написать ответ в эту тему

TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как известно, в течение длительного времени Microsoft C/C++ компилятор невозможно было использовать без массивной (нынче уже монструозной и, к сожалению, жутко глюкавой) IDE; времена QuickC в счет не берем. Между тем, во многих ситуациях требуется компилятор в классическом виде, без излишеств.
В 2003 Microsoft выпустила продукт под названием Microsoft Visual C++ Toolkit 2003, в настоящее время его можно нагуглить, но с официального сайта фирма, следуя своей не лучшей традиции, его удалила.
 
Раньше можно было использовать также пакет Windows Driver Kit (WDK), в состав которого, до 8-й версии, входил компилятор.
 
В 2015г. был, наконец, анонсирован, а затем выпущен продукт Visual C++ Build Tools 2015, который представляет собой набор инструментальных стредств (C++ компилятор, компоновщик и другие вспомогательные утилиты, библиотеки и заголовочные файлы, скрипты для сборки, различные версии Windows SDK, впрочем последние можно и не устанавливать) для сборки C++ приложений и библиотек для настольных версий Windows, причем устанавливать Visual Studio не требуется. Этот пакет требует .NET Framework версии 4.5.1 и выше.
    Состав:  
  •    Visual C++ Compilers (targeting x86, X64 and ARM)
  •    Visual C++ headers & libraries (CRT & STL)
  •    Visual C++ build scripts (targeting Windows desktop)
  •    Microsoft Build Tools 2015 (MSBuild)
  •    Windows SDK 8.1 (optional, on by default)
  •    Windows SDK 10 (optional, off by default)
  •    C++ Build tools specific command prompts
  •    MFC and ATL (added with VS 2015 Update 3)
Этот продукт можно скачать на сайте компании в виде 3-х мегабайтного Web-установщика. Конечно, для установки на несколько компьютеров вариант online-установки не подходит. Для offline-установки скачанный Web-установщик надо запустить с ключом /layout --- в этом случае установщик скачает все необходимые компоненты в указанный каталог для последующей установки уже в offline-режиме, но уже с ключом /NoWeb; общий размер загруженных файлов составляет примерно 1,7 Гб.
 
Как утверждается на сайте Microsoft, фирма, учитывая высокую стоимость (в смысле трудозатрат) индивидуальных установок Visual Studio 2015 и WDK для организаций с большим количеством разработчиков, выпустила специальную версию уже упомянутого пакета Windows Driver Kit (WDK) под названием Enterprise Windows Driver Kit (Enterprise WDK), основанный на Enterprise-редакции Visual Studio 2015, WDK, и Windows SDK. В составе Enterprise WDK также нет визуальной среды разработки --- предлагается только интерфейс командной строки. Enterprise WDK версии 10 включает в свой состав:
• Visual Studio Build Tools, C/C++ компилятор, компоновщик (linker) и объектные библиотеки (lib) из Visual Studio сборки 14.00.24720.0 (VS 2015 Update 1)
• Windows SDK сборки 10586.13  
• .NET Framework 4.6 SDK сборки 10586.13  
• Windows Driver Development Kit сборки 10586.0
 
Таким образом, Enterprise WDK содержит все необходимое для сборки драйверов и базовых тестовых Win32-приложений. Установка продукта крайне проста --- в соответствии с заявленными целями он поставляется в виде единственного zip-файла "весом" около 1,8 Гб, который надо просто распаковать и запустить скрипт настройки от имени администратора. Распакованный архив занимает уже около 5,7 Гб.
 
Подчеркнем еще раз, что эти продукты имеют интерфейс командной строки --- никакой визуальной среды разработки, даже простого редактора кода, в своем составе они не имеют.
 
Преимущества и недостатки
1. Visual C++ Build Tools 2015
Неудобная загрузка --- инсталлятор часто глючит
Необходим администраторский доступ для установки, следовательно, при переустановке системы надо заново устанавливать
 
2. Enterprise Windows Driver Kit (EWDK)
Легкая загрузка --- качаем единственный zip-архив
 
Формально, как написано в официальном сайте, для запуска скриптов необходим администраторский доступ, но можно работать и без этого; как --- опишу ниже. Официальный сайт предлагает пользоваться утилитой MSBuild, но в этом случае, чтобы скомпилировать даже простой "проект" "Hello, world", надо составить файл проекта .vcxproj, причем формат этого файла кое-в-чем отличается от, так скажем, стандартного. В статье Walkthrough: Using MSBuild to Create a Visual C++ Project приводится пример такого файла
Подробнее...
Однако, этот файл, скажем так, несколько устарел. Ниже приведен модифицированный мной пример MyTest.vcxproj
Подробнее...
Теперь можно и собирать:
MSBuild MyTest.vcxproj /p:configuration=release /p:platform=Win32
 
Теперь кратко (только для двух платформ, для других можно попробовать аналогичным образом) опишу, как заставить "работать" EWDK без администраторского доступа и без утилиты MSBuild (эта информация устарела и будет отредактировано)
Подробнее...
 
И еще: nmake тоже наличествует
 
На всякий случай, история выпусков:
https://developer.microsoft.com/ru-ru/windows/hardware/license-terms-enterprise-wdk
https://docs.microsoft.com/en-us/legal/windows/hardware/enterprise-wdk-license-2015
EWDK for Windows 10, version 1607 with Visual C++ Build Tools 2015
EWDK for Windows 10, version 1703 with Visual C++ Build Tools 2015
https://developer.microsoft.com/ru-ru/windows/hardware/license-terms-EWDK
https://docs.microsoft.com/en-us/legal/windows/hardware/enterprise-wdk-license-2017
EWDK for Windows 10, version 1709 with Visual Studio Build Tools 15.2
EWDK for Windows 10, version 1709 with Visual Studio Build Tools 15.4
EWDK for Windows 10, version 1709 with Visual Studio Build Tools 15.6
EWDK for Windows 10, version 1803 with Visual Studio Build Tools 15.6
EWDK for Windows 10, version 1803 with Visual Studio Build Tools 15.7
EWDK for Windows 10, version 1809 with Visual Studio Build Tools 15.8
EWDK for Windows 10, version 1809 with Visual Studio Build Tools 15.8.9
https://developer.microsoft.com/ru-ru/windows/hardware/license-terms-EWDK-2
https://docs.microsoft.com/en-us/legal/windows/hardware/enterprise-wdk-license-2019
EWDK for Windows 10, version 1903 with Visual Studio Build Tools 16.0
EWDK for Windows 10, version 2004 with Visual Studio Build Tools 16.7
EWDK for Windows Server 2022 with Visual Studio Build Tools 16.9.2
https://docs.microsoft.com/en-us/legal/windows/hardware/enterprise-wdk-license-2019-New
Windows 11 EWDK with Visual Studio Build Tools 16.9.2
Windows 11 EWDK with Visual Studio Build Tools 16.11.10
https://learn.microsoft.com/en-us/legal/windows/hardware/enterprise-wdk-license-2022
Windows 11, version 22H2 EWDK with Visual Studio Build Tools 17.1.5
 
Также полезная информация: иногда требуется указать в командной строке для MSBuild значение параметра PlatformToolset Подробнее...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 20:01 21-11-2016 | Исправлено: TeXpert, 10:15 11-02-2023
amr_now



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Цитата:
невозможно было использовать без массивной (нынче уже монструозной и, к сожалению, жутко глюкавой) IDE

Проблему вы обозначили.
 
А как выходить из проблемы?
Например, неплохо бы обсудить, как прицепить консольный компилятор к Visual Studio Code или допустим к IntelliJ.
 
Кстати, сейчас основная задача в редакторе - заставить работать IntelliSense.
 
Добавлено:
Вот что-то похожее, если нужно:
https://blogs.msdn.microsoft.com/vcblog/2016/03/31/cc-extension-for-visual-studio-code/

Всего записей: 8604 | Зарегистр. 30-06-2006 | Отправлено: 10:31 22-11-2016 | Исправлено: amr_now, 10:39 22-11-2016
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
amr_now

Цитата:
Проблему вы обозначили
Если Вы заметили, я решал немного другую проблему --- как установить компилятор.
Насчет Visual Studio Code --- решение уже имеется, еще напишу

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 10:50 22-11-2016
Rock

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert

Цитата:
Как известно, в течение длительного времени Microsoft C/C++ компилятор невозможно было использовать без массивной (нынче уже монструозной и, к сожалению, жутко глюкавой) IDE; времена QuickC в счет не берем.

Конечно, же, это не так. Компилятор MS всегда был доступен отдельно в составе SDK и его всегда можно было выковыривать дальше, сокращая до 5 или около того файлов. Так, подобная кастрированная версия входила в официальную майкрософтовскую утилиту для редактирования раскладки клавиатуры Windows 95: графическая тулза после редактирования раскладки генерировала С-файл, который за кулисами собирался, например, в kbdru.dll.

Всего записей: 1256 | Зарегистр. 10-04-2003 | Отправлено: 19:22 06-01-2017
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Некоторое дополнение
На чистой (никаких средств разработки от Microsoft) машине с Windows 10 на борту был проведен эксперимент. Было установлено, что необходимы также строки

Код:
@SET VSINSTALLDIR=D:\Programs\EWDK\Program Files\Microsoft Visual Studio 14.0\
@SET VCINSTALLDIR=D:\Programs\EWDK\Program Files\Microsoft Visual Studio 14.0\VC\
На тех машинах, где я проводил исследования, было уже установлено Visual C++ Build Tools 2015 с последующим сносом
 
Также потребовалось для MSBuild добавить в PATH следующее (для 32-х битной версии)
Код:
 
set PATH=D:\Programs\EWDK\Program Files\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT;%PATH%
set PATH=D:\Programs\EWDK\Program Files\MSBuild\14.0\Bin;%PATH%
Ясно, что эти строки где-то в недрах вышеупомянутых файлов оказались незадействованы... пока вермени нет разбираться. Странно другое: я решил проверить проекты из Windows Driver Kit (WDK) 10 Samples, так вот на старой машине проект собирается, а вот на новой, "чистой", с Windows 10 --- нет, требует Windows SDK 8. Странно то, что Windows SDK 8 нет на обеих машинах
 
Добавлено:
Rock
Цитата:
Конечно, же, это не так. Компилятор MS всегда был доступен отдельно в составе SDK
Про это я знал, забыл просто вставить слово "практически", и тему SDK тоже забыл --- писал в спешке, спасибо
Цитата:
...его всегда можно было выковыривать дальше, сокращая до 5 или около того файлов
Вплоть до Visual Studio 2010 занимался таким выковыриванием, потом студии мне надоели, а вот такой фокус с Visual Studio 2015 не прошел, в том смысле, что их файлы уже не будут работать в Windows версий младше 7. Вот, кстати, весьма полезный материал по теме: Isolating MSVC 14.0 C/C++ compiler

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 19:37 06-01-2017
IceK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всё проще:
 

Код:
 
nuget install VisualCppTools -source http://vcppdogfooding.azurewebsites.net/nuget/ -Prerelease
 

 
Скачивается и устанавливается свежая версия компилятора с библиотеками, будет работать либо из командной строки, либо можно прописать пути к нему из любой студии (2008 и выше) или редактора (CodeBlocks и т.п.).
 
Размер дистрибутива ~200мб, распакованный ~0.9Гб: 117 мб компилятор, 15 мб include, 800 мб lib (x86/x64/arm/store).

Всего записей: 225 | Зарегистр. 19-12-2005 | Отправлено: 15:39 31-01-2017
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IceK
Вряд ли все проще. Ключевое слово
Цитата:
...и устанавливается
Инсталляция обладает двумя огромными недостатками:  
1) Глюки при установке. Уже сколько раз сталкивался с проблемами с .NET Framework --- то не ставится, то ставится криво. К тому же, слетит система --- развлекайся повторно
2) Требуется администраторский доступ к системе
 
P. S. Сам тоже вначале радовался насчет  Visual C++ Build Tools 2015

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 21:00 01-02-2017
IceK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Эм, вообще-то под "устанавливается" я имел ввиду распаковку zip архива Неточно выразился.

Всего записей: 225 | Зарегистр. 19-12-2005 | Отправлено: 21:49 01-02-2017
trion1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IceK
Цитата:
Всё проще:
Код:
nuget install VisualCppTools -source http://vcppdogfooding.azurewebsites.net/nuget/ -Prerelease
Для win xp sp3 какая версия nuget нужна?
(3.5, 2.8.6, 1.8.1, 1.8 - с ошибками прекращают работу; 1.7 - висит в процессах ничего не делает)

Всего записей: 1980 | Зарегистр. 15-03-2006 | Отправлено: 16:23 02-02-2017
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IceK
Раз
Цитата:
zip архив
то нельзя ли прямую ссылку организовать на него?
 
trion1
Цитата:
win xp sp3
А разве последние версии нашего компилятора пойдут работать на эту ОС?

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 11:39 03-02-2017 | Исправлено: TeXpert, 11:52 03-02-2017
trion1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert, о работе речь не шла, "ключевые слова" были:
Цитата:
Всё проще и Скачивается...
хотел просто скачать и посмотреть прямые линки...
но даже и в этом тоже облом ;(

Всего записей: 1980 | Зарегистр. 15-03-2006 | Отправлено: 12:17 03-02-2017
Dunkeshu

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
trion1 Ну прямой линк - не проблема, но на XP visualcpptools 14.0.24629 - это точно проблема или облом

Всего записей: 621 | Зарегистр. 25-01-2010 | Отправлено: 03:23 04-02-2017
IceK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
 
> нельзя ли прямую ссылку организовать на него?
 
Не знаю, меня nuget устраивает, т.к. компилятор часто обновляется (раз в неделю-месяц).
 
Вот пример: https://mega.nz/#!vAByBbAQ, компилятор в lib/native.

Всего записей: 225 | Зарегистр. 19-12-2005 | Отправлено: 14:35 06-02-2017
IceK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Теперь они распространяют не только ночные сборки, но и стабильные версии:
 

Код:
 
nuget install VisualCppTools -source http://vcppdogfooding.azurewebsites.net/nuget/
 


Всего записей: 225 | Зарегистр. 19-12-2005 | Отправлено: 12:34 07-02-2017 | Исправлено: IceK, 12:37 07-02-2017
trion1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rss по сборкам
 
http://vcppdogfooding.azurewebsites.net/nuget/Packages
 
Добавлено:
там внутри, если покопаться, есть прямая ссылка на последний и несколько недавних пререлизов, например:
 
http://vcppdogfooding.azurewebsites.net/api/v2/package/visualcpptools/14.0.25002-pre
 
по этой ссылке качается файл "VisualCppTools.14.0.25002-Pre.nupkg",
переименовываем его в zip, и распаковываем архив.

Всего записей: 1980 | Зарегистр. 15-03-2006 | Отправлено: 15:40 07-02-2017
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Где-то в феврале 2017 состоялся выпуск Enterprise WDK 1703, а недавно в рамках Windows 10 Insider Preview появился вариант Enterprise WDK в виде 7,4 Гигабайтного ISO-образа.  
Этот образ надо просто монтировать и работать (правда, опять же надо пару переменных прописать, но мороки все же меньше, чем прежде)
Код:
The EWDK is a standalone self-contained command-line environment for building drivers.  
It includes Build Tools for Visual Studio 2017, the SDK, the WDK and support for ARM64 driver development
To get started mount the ISO and click LaunchBuildEnv
Скачать после регистрации можно тут. Версия компилятора
Код:
Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25019 for x86/x64
Microsoft (R) Incremental Linker Version 14.10.25019.0


----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 22:00 12-10-2017 | Исправлено: TeXpert, 23:09 12-10-2017
amr_now



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как говорится, проблемы надо решать по мере появления.
Насильно меня заставили почитать азбуку "C K&R".
Нашел у себя огрызок от старой стёртой Студии - SDK с данным Microsoft Optimizing Compiler.
 
Простенький батничек для компиляции С-програмки:
 

Код:
@echo off
set CppSDK="c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Microsoft Azure Data Lake Tools for Visual Studio 2015\2.0.6000.0\CppSDK\"
set INCLUDE="%CppSDK:"=%VC\include\"
set LIB="%CppSDK:"=%VC\lib\";"%CppSDK:"=%SDK\lib\"
"%CppSDK:"=%VC\bin\cl" %1

 
Параметр батничка - файл исходного кода С-програмки.
 
(Прикольный способ удаления кавычек из переменной, не знал )

Всего записей: 8604 | Зарегистр. 30-06-2006 | Отправлено: 22:11 31-10-2017 | Исправлено: amr_now, 22:27 31-10-2017
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В конце октября в очередной раз обновился EWDK, теперь версия 1709, и в виде ISO-файла EWDK_rs3_release_16299_170928-1534.iso весом примерно 7.4 GB
Цитата:
 EWDK — это автономная среда командной строки для создания драйверов. В нее включена последняя версия Visual Studio Build Tools, пакета SDK и WDK.
Чтобы приступить к работе, подключите ISO-файл и выполните LaunchBuildEnv

Цитата:
Вы можете использовать WDK для разработки драйверов, которые работают в следующих операционных системах.
    Windows 10
    Windows 8.1
    Windows 8
    Windows 7
    Windows Server 2016
    Windows Server 2008 R2
Пока я собирал драйверы для Windows 7, Windows 8 и Windows 10

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 14:02 03-11-2017
IceK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> set INCLUDE="%CppSDK:"=%VC\include\"
 
Что это?

Всего записей: 225 | Зарегистр. 19-12-2005 | Отправлено: 18:44 08-11-2017
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очередное обновление EWDK версии 1709 теперь называется EWDK with Visual Studio Build Tools 15.4, в виде ISO-файла EWDK_rs3_release_svc_16299_171024-1647.iso весом теперь примерно 5.3 GB. Пакет похудел почти на 2 GB --- что не может не радовать!
Цитата:
>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.11.25547

Цитата:
EWDK — это автономная среда командной строки для создания драйверов. В нее включена последняя версия Visual Studio Build Tools, пакета SDK и WDK.
Чтобы приступить к работе, подключите ISO-файл и выполните LaunchBuildEnv
Для сборки драйверов этого хватает, однако, для компиляции обычных файлов я набросал bat-файл (только для Intel, для других платформ можно легко сделать по аналогии) vc.bat:
Код:
@echo off
set VER=%1
if "%VER%" == "32" set LIBVER=86
if "%VER%" == "64" set LIBVER=64
set "VSROOT=G:\Program Files"
set "BUILDTOOLSPATH=%VSROOT%\Microsoft Visual Studio\2017\BuildTools"
set "WDKROOT=%VSROOT%\Windows Kits\10"
set "WDKLIB=%VSROOT%\Windows Kits\10\Lib\10.0.16299.0"
call "%BUILDTOOLSPATH%\VC\Auxiliary\Build\vcvars%VER%.bat"
set "INCLUDE=%WDKROOT%\Include\10.0.16299.0\ucrt;%INCLUDE%"
set "LIB=%WDKLIB%\ucrt\x%LIBVER%;%WDKLIB%\um\x%LIBVER%;%LIB%"
Естественно, 5-ю строчку надо редактировать под ваши реалии. Вызываем так:
Код:
vc 32 | 64
Дальше пользуем команду cl

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 01:58 13-03-2018 | Исправлено: TeXpert, 02:05 13-03-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5

Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft C/C++ оптимизирующий компилятор


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru