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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
zzz528

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
исходный код llvm требует cmake, а та свою очередь студию, которой нет и не будет.
Когдато была 2013 студия и я собирал, cmake - прокладка которая в свою очередь использует другую прокладку MSbuild.
Как заставить cmake воспринимать EWDK??
Или вообще избаваиться от cmake каким-то способом, желательно и от MSbuild тоже?

Всего записей: 1658 | Зарегистр. 20-06-2005 | Отправлено: 18:59 10-06-2023
zvezdochiot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzz528 say:

Цитата:
требует cmake, а та свою очередь студию, которой нет и не будет.

Почему тогда не пользовать cmake в связке с mingw? Это то точно всегда будет.

Всего записей: 562 | Зарегистр. 18-05-2023 | Отправлено: 19:20 10-06-2023 | Исправлено: zvezdochiot, 19:21 10-06-2023
zzz528

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zvezdochiot
mingw не годиться, cmake нужно заставить работать именно с ewdk, я думаю он ищет сдутию по реестру, например msbuild упорно игнорировал переменные path, include, lib... и тоже по реестру искал, я поправил хмл файлы и теперь работает как мне нужно. В cmake есть много файлов cmake в Modules..

Всего записей: 1658 | Зарегистр. 20-06-2005 | Отправлено: 00:49 14-06-2023
reversecode



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cmake умеет собирать и для nmake таргета а не только для msbuild
я например им только для nmake и пользуюсь
 
-G"NMake Makefiles"
 
llvm тоже собирал так же без msbuild
а вообще зачем llvm собирать если его регулярно релизят на гит хабе собранным под все возможные ОС

Всего записей: 1975 | Зарегистр. 06-03-2008 | Отправлено: 01:47 14-06-2023 | Исправлено: reversecode, 01:49 14-06-2023
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzz528
Цитата:
Как заставить cmake воспринимать EWDK??
Можете четко описать проблему, и дать соответствующие файлы (если вам не трудно, создать небольшие файлы, иллюстрирующие проблему)? Я бы попробовал решить и доложил бы тут
Цитата:
Или вообще избаваиться от cmake каким-то способом, желательно и от MSbuild тоже?
И эту проблему прошу проиллюстрировать с примерами
 
На самом деле, c MSBuild вполне можно разобраться и без реестров, и сообщить ему PATH, INCLUDE и LIB и т. п., сейчас у меня мало времени, я обязательно об этом напишу
 
 
Заранее благодарен

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 19:36 15-06-2023
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzz528
 
Кстати, не только С++ так через nmake собирается, но и куча прочего. Мне лень по своим скриптам смотреть, но где могу я именно так и делаю. CMake вполне удобен если знать как сего кота готовить. Например так: genman.cmd и он сам про себя всё расскажет ибо текстовый мануал где угодно читается...
 

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33235 | Зарегистр. 31-07-2002 | Отправлено: 09:40 16-06-2023
zzz528

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Исходный код
https://github.com/rust-lang/rust
делаем настройку config.toml
в [build] все вещи выставляем x86_64-pc-windows-msvc
потом запускаем msys с путями к ewdk
и в нём запускаем python x.py b
оно будет накачивать много всего и llvm в том числе, как я понял у них свой особенный llvm после 8й версии.
 
Через некоторое время затык: типа руставая прокладка cmake
https://github.com/rust-lang/cmake-rs/blob/3ddc3d505ef38ebec54b999110f9dd10b4465252/src/lib.rs#L941
По реестру ищет студию, отменяем это и ставим туда прямо нужный номер
 
через nmake собирается
Ну я попробовал прописать nmake туда

Цитата:
let base = "NMake Makefiles";

Тоже не работает
Подробнее...
 
Допустим
CMAKE_C_COMPILER =  сl
CMAKE_CXX_COMPILER = тоже  сl?
CMAKE_ASM_COMPILER = ml

Всего записей: 1658 | Зарегистр. 20-06-2005 | Отправлено: 23:08 16-06-2023 | Исправлено: zzz528, 23:11 16-06-2023
BorlandIMHO

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

Цитата:
Допустим...

С полным путём нужно указывать, насколь я чего-то помню... И для асм, наверное, будет ml64.
А так да, cl-cl-ml.

Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 11:10 17-06-2023
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzz528
 
Пути к бинарникам компилятора должны быть определены до их вызова или ОС их не отыщет. Например вот батник из FarColorer - nmake_build.cmd


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33235 | Зарегистр. 31-07-2002 | Отправлено: 12:47 17-06-2023
zzz528

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

Цитата:
Пути к бинарникам компилятора должны быть определены

Да "именно так", имхо не нужно писать полные пути где либо ещё.
 

Цитата:
вот батник из FarColore

И там CMAKE_C_COMPILER вещи не прописаны и может не должны, я думаю ошибка потому что я поставил Makefiles туда где уже всё написано под студию...
Всё надоело: взял исходный код cmake и удалил несколько кусков отвечающий за проверку студии - вот теперь cmake работает c ewdk
 
TeXpert

Цитата:
На самом деле, c MSBuild вполне можно разобраться и без реестров...

Да пожалуйста напиши как будет время.
Я был долго с этим бился, и ничего лучше чем покоцать хml файлы не придумал.

Всего записей: 1658 | Зарегистр. 20-06-2005 | Отправлено: 23:52 19-06-2023 | Исправлено: zzz528, 00:01 20-06-2023
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzz528
 
Переменную среды VS160COMNTOOLS определить и танцы с поиском компилятора испаряться. dmex в Process Hacker для этого специальный кусок кода в CustomBuildTool добавлял - Микрософт тогда достаточно лихо интригу закрутила. В старых компиляторах была переменная среды VS***COMNTOOLS указывающая путь к их бинарникам, а в 2019 её убрали и поменяли часть записей в конфигах, так что пришлось  повозится.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33235 | Зарегистр. 31-07-2002 | Отправлено: 09:42 20-06-2023
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzz528
Цитата:
Всё надоело: взял исходный код cmake и удалил несколько кусков отвечающий за проверку студии - вот теперь cmake работает c ewdk
Даст Бог, еще подружим CMake с EWDK. А пока, что хорошо, популярность EWDK растет в народе, что радует
Цитата:
Да пожалуйста напиши как будет время.
Я был долго с этим бился, и ничего лучше чем покоцать хml файлы не придумал
До конца этого месяца я занят, а там, даст Бог, разберемся

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 18:34 20-06-2023
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С Новым Годом, Господа, а также с Рождеством, кто празднует
 
Вышла книга (и уже успешно украдена, что одновременно и радостно и печально), имеющее непосредственное отношение к теме
Berik I. Tuleuov, Ademi B. Ospanova.
Beginning C++ Compilers: An Introductory Guide to Microsoft C/C++ and MinGW Compilers. APress, 2024. 211p.

Купить можно по этой ссылке на сайте Springer (APress является его подразделением).
Украсть можно тут, на родном руборде
 
Про EWDK, в частности по компактизации и использовании без администраторских прав, написано в подразделе 9.2.2, и не только там
 
Книга не без ошибок, можно здесь же высказать конструктивную критику
 
Заранее благодарен
 
EWDK слегка обновился, номера версий не изменились, так что можно использовать bat-файл из поста без изменений

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 13:31 07-01-2024 | Исправлено: TeXpert, 14:00 07-01-2024
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как можно минимизировать размер EWDK?
Информация из книги из предыдущего поста
 
Если вы работаете исключительно с процессорами Intel, а также хотите выкинуть устаревшие библиотеки ATL/MFC,  
то вы можете с помощью утилиты robocopy свести размер EWDK до 5.5 GB командой
Код:
>robocopy I:\ E:\Programs\EWDK_COMPACT\ /mir /xd atlmfc arm arm64 arm64ec chpe
затем смонтировать папку E:\Programs\EWDK_COMPACT как отдельный диск командой
Код:
>subst X: E:\Programs\EWDK_COMPACT

 
Вот отчет процесса "уменьшения" размера EWDK на древнем лаптопе Asus Lamborghini VX7.
Процесс занял 4 мин. 28 сек.
Заметим, что этот метод работает, когда у вас нет администраторских прав
Код:
------------------------------------------------------------------------------
 
               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :      3363      3241       122         0         0         0
   Files :     27692     27692         0         0         0         0
   Bytes :   5.500 g   5.500 g         0         0         0         0
   Times :   0:04:28   0:03:11                       0:00:00   0:01:17
 
 
   Speed :            30902018 Bytes/sec.
   Speed :            1768.227 MegaBytes/min.
   Ended : 2024 ж. 9 қаңтар, сейсенбі 21:20:52


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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 18:39 09-01-2024 | Исправлено: TeXpert, 18:42 09-01-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 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