Где находятся запросы разработчиков x64 и ARM для VS2017?

Я установил Visual Studio 2017 Build Tools. После установки при переходе по Пуск → Программы → Visual Studio 2017 → Инструменты Visual Studio появляется только командная строка разработчика x86. Нет никаких подсказок для x64 и ARM. (Обычно на выбор предлагается около 6 подсказок разработчика).

Где находятся инструменты сборки для x64 и ARM?


ОБНОВЛЕНИЕ (18 ЯНВАРЯ 2017 г.)

После установки всего Windows 10 SDK, Build 15003 в соответствии с инструкциями @ magicandre1981, я не могу найти подсказки разработчика. Я не могу найти их в меню «Пуск»; и переход в оболочку Git Bash и их поиск возвращает 0 результатов.

В именах ниже vsdevcmd.bat - это то, что было установлено средствами сборки VC ++ на 2017 год. vcbuildtools.bat - это то, что было установлено средствами сборки VC ++ на 2015 год.

MINGW64 /c/Program Files (x86)/Windows Kits/10
$ find . -iname 'vsdevcmd.*'

$ find . -iname 'vcbuildtools.*'

$ find . -iname '*.bat'

$ find . -iname '*.cmd'
./bin/10.0.15003.0/arm/SecureBoot/DeleteKitsPolicy.cmd
./bin/10.0.15003.0/arm/SecureBoot/InstallKitsPolicy.cmd
./bin/10.0.15003.0/arm64/install-sampleprovider.cmd
./bin/10.0.15003.0/arm64/uninstall-sampleprovider.cmd
./bin/10.0.15003.0/x64/install-sampleprovider.cmd
./bin/10.0.15003.0/x64/uninstall-sampleprovider.cmd
./bin/10.0.15003.0/x86/DismFoDInstall.cmd
./bin/10.0.15003.0/x86/GenerateUnionWinMD.cmd
./bin/10.0.15003.0/x86/install-sampleprovider.cmd
./bin/10.0.15003.0/x86/uninstall-sampleprovider.cmd
./bin/arm/SecureBoot/DeleteKitsPolicy.cmd
./bin/arm/SecureBoot/InstallKitsPolicy.cmd
./bin/arm64/install-sampleprovider.cmd
./bin/arm64/uninstall-sampleprovider.cmd
./bin/x64/install-sampleprovider.cmd
./bin/x64/uninstall-sampleprovider.cmd
./bin/x86/DismFoDInstall.cmd
./bin/x86/GenerateUnionWinMD.cmd
./bin/x86/install-sampleprovider.cmd
./bin/x86/uninstall-sampleprovider.cmd
./Debuggers/x64/srcsrv/cv2http.cmd
./Debuggers/x64/srcsrv/cvsindex.cmd
./Debuggers/x64/srcsrv/p4index.cmd
./Debuggers/x64/srcsrv/ssindex.cmd
./Debuggers/x64/srcsrv/svnindex.cmd
./Debuggers/x64/srcsrv/tfsindex.cmd
./Debuggers/x64/srcsrv/vssindex.cmd
./Debuggers/x64/srcsrv/walk.cmd
./Debuggers/x86/srcsrv/cv2http.cmd
./Debuggers/x86/srcsrv/cvsindex.cmd
./Debuggers/x86/srcsrv/p4index.cmd
./Debuggers/x86/srcsrv/ssindex.cmd
./Debuggers/x86/srcsrv/svnindex.cmd
./Debuggers/x86/srcsrv/tfsindex.cmd
./Debuggers/x86/srcsrv/vssindex.cmd
./Debuggers/x86/srcsrv/walk.cmd
./Windows Performance Toolkit/gpuview/log.cmd
./Windows Performance Toolkit/gpuview/log_mem.cmd
./Windows Performance Toolkit/WdfPerfEnhancedVerifier.cmd

$

В отчаянии я скопировал подсказку разработчика инструментов сборки 2017 (для x86) и добавил amd64_arm, как это делают инструменты сборки 2015 года. Это приводит к отказу:

[ERROR:parse_cmd.bat] Invalid command line argument: 'amd64_arm'. Argument will
be ignored.
**********************************************************************
** Visual Studio 2017 RC Developer Command Prompt v15.0
** Copyright (c) 2016 Microsoft Corporation
**********************************************************************
[ERROR:VsDevCmd.bat] *** VsDevCmd.bat encountered errors. Environment may be inc
omplete and/or incorrect. ***

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools>

Еще больше отчаяния ... Я начал отслеживать установщиков msiexec с помощью монитора процессов и проверка содержимого MSI используя 7-zip. Насколько я могу судить, нет никаких подсказок разработчика, даже в установщике MSI инструментов разработчика:

введите описание изображения здесь


person jww    schedule 17.01.2017    source источник
comment
Я обновил свой ответ, указав шаги по компиляции настольных приложений для ARM / ARM64 с VS2017 15.4 и Win10 16299 SDK.   -  person magicandre1981    schedule 07.11.2017


Ответы (2)


Файлы bat подсказок разработчика, похоже, были немного реструктурированы в VS 2017. Вместо фиксированного набора предопределенных подсказок разработчика теперь вы можете настроить его еще больше.

Чтобы получить подсказку разработчика, например, arm, добавьте -arch=arm -host_arch=amd64 в качестве параметров к VsDevCmd.bat (например, в ярлыке в стартовом меню).

Полный список доступных опций можно найти в \Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\vsdevcmd\core\parse_cmd.bat или позвонить по телефону "\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\vsdevcmd" -help.

Я не уверен, действительно ли это где-то задокументировано, или это будет исправлено и / или задокументировано лучше для окончательной версии VS 2017.

Установка Windows 10 SDK для предварительной версии не имеет отношения к этому; автономный Windows SDK не включает компиляторов, только заголовки и библиотеки ссылок.

person mstorsjo    schedule 18.01.2017
comment
Для экономии времени доступны -arch параметры: x86, amd64, arm. - person Timmmm; 07.05.2017
comment
За исключением того, что arm, похоже, не работает: vsdevcmd -arch=arm приводит к ERROR: Invalid host architecture 'arm'., даже если у вас установлен последний (15063) Windows 10 SDK с инструментами ARM. - person Akeo; 09.05.2017
comment
Вы также добавили -host_arch=amd64? В противном случае он может подумать, что вы хотите иметь ту же архитектуру хост-инструментов, что и цель. - person mstorsjo; 09.05.2017
comment
@mstorsjo, проблема в том, что если вы попытаетесь добавить -host_arch=amd64, то получите цель amd64. Другими словами, cl /? сообщает Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25019 for x64, что означает, что он нацелен на x86_64, тогда как при использовании подсказок ARM VS2015 та же команда сообщает Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for ARM. Кроме того, отсутствие C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\arm\cl.exe дает понять, что в VS2017 НЕТ поддержки кросс-компиляции ARM. - person Akeo; 12.05.2017
comment
Конечно, в VS2017 есть поддержка кросс-компиляции ARM (у меня есть именно тот cl.exe, который, по вашему мнению, отсутствует), но вы, возможно, не установили эту часть - она ​​не включена по умолчанию. Вам необходимо открыть вкладку «Отдельные компоненты» в установщике и установить флажок «Компиляторы и библиотеки Visual C ++ для ARM». См. pasteboard.co/5uxpd08Yi.png. - person mstorsjo; 12.05.2017
comment
Ах, я вижу, ты прав! Я когда-либо смотрел только на правую сторону для рабочих нагрузок, в которой нет списка ARM (pasteboard.co/6lBmDB14Z.png), и никогда не предполагал, что Microsoft будет достаточно изворотливой, чтобы указать только компилятор и библиотеку ARM в разделе «Отдельные компоненты». Большое, большое спасибо, что указали на это !! - person Akeo; 15.05.2017
comment
@mstorsjo - по состоянию на август 2017 г. ARM64 все еще не работает. См. Visual Studio 2017 и тестирование ARM64 в списке рассылки Crypto ++. - person jww; 04.08.2017
comment
Да, потому что Microsoft еще не выпустила компилятор MSVC для ARM64. Там просто нет cl.exe, который производит код для ARM64. - person mstorsjo; 04.08.2017
comment
Попробуйте запустить vsdevcmd -? чтобы получить полный список. - person Alex Budovski; 16.11.2017
comment
Наконец-то поддерживается только обновление с использованием VS2019 -arch=arm64 -host_arch=amd64. - person tresf; 21.07.2020

Установите Windows 10 SDK и WDK (по крайней мере, сборка 16299), чтобы получить компилятор ARM для настольных приложений.

введите описание изображения здесь

Откройте конфигурацию проекта и создайте конфигурацию ARM (64):

введите описание изображения здесь

Если вы попытаетесь его скомпилировать, вы получите сообщение об ошибке, что ARM64 не поддерживается для рабочего стола:

введите описание изображения здесь

Чтобы исправить это, выгрузите проект, откройте его в редакторе и добавьте строку <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> в запись отладки и выпуска для ARM64:

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v141</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
    <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v141</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
  </PropertyGroup>

и WindowsSDKDesktopARMSupport для 32-битной ARM.

Сохраните изменения, снова загрузите проект и теперь компиляция работает нормально:

введите описание изображения здесь

15.9 Обновление для VS2017, добавляет официальную поддержку ARM64 (только для UWP), здесь командная строка для открытия приглашения ARM64 dev:

%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"" amd64_arm

Командная строка 32 Bit Arm:

%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"" x86_arm
person magicandre1981    schedule 17.01.2017
comment
Спасибо @ magicandre1981. Я не могу проверить это в течение нескольких часов, но я вернусь. Есть два других вопроса, на которые вы можете легко ответить на основе приложений arm64: Обнаружить ARM-64 в препроцессоре? и ARM SHA-расширения и «ошибка C3861: vsha1h_u32: идентификатор не найден». Если вы не ответите, я отвечу для будущих посетителей. - person jww; 17.01.2017
comment
Еще раз спасибо @ magicandre1981. Загрузка для меня недоступна. Ну что ж, это была хорошая попытка ... - person jww; 18.01.2017
comment
вы можете без проблем присоединиться к инсайдерской программе. HEre - это ссылка DL на следующие 24 часа: software-download.microsoft.com/pr/ - person magicandre1981; 18.01.2017
comment
Спасибо @ magicandre1981. По-прежнему нет радости от подсказок разработчика. Microsoft так облажалась ... В течение 15 лет у нас были инструменты разработчика с Visual Studio, а затем инструменты сборки. Затем, в 2017 году, он сломался. Совершенно удивительно, что они взяли простой процесс, который сработал, и сломали его. Какой-то идиот, наверное, получил за это большой бонус. - person jww; 18.01.2017
comment
хорошо, я не установил инструменты C ++, потому что я не использую VS2017, поэтому я не вижу, действительно ли это сработало :( - person magicandre1981; 18.01.2017
comment
По состоянию на август 2017 года ARM64 все еще не работает. Я не могу тестировать, и другие не могут тестировать. Снимаю шляпу перед Microsoft за то, что все испортил. См. Visual Studio 2017 и тестирование ARM64 в списке рассылки Crypto ++. . - person jww; 04.08.2017
comment
@jww в VS2017 15.4 с 16299 SDK / WDK, я могу скомпилировать для ARM64 - person magicandre1981; 07.11.2017
comment
Я создаю конфигурацию ARM. В диалоговом окне New Solution Platform нажатие OK вызывает ошибку: операция не может быть завершена. Неизвестная ошибка. Почему это? - person nyanpasu64; 27.01.2018
comment
отредактируйте csproj самостоятельно ‹ProjectConfiguration Include = Debug | ARM64› ‹Configuration› Debug ‹/Configuration› ‹Platform› ARM64 ‹/Platform› ‹/ProjectConfiguration› то же самое для выпуска и добавьте запись, которую видите на картине - person magicandre1981; 27.01.2018