Visual Studio 2013: CL.exe вышел с кодом -1073741515

У меня есть свежий Windows 8.1 Pro x64 с помощью новой Visual Studio 2013 Pro. При попытке скомпилировать проект с помощью Platform Toolset до Windows7.1SDK я получаю

Error   1   error MSB6006: "CL.exe" exited with code -1073741515.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets   57  5   MenuBrowser

Я попробовал запустить прилагаемый "Инструмент настройки Windows SDK", и, кроме того, что ошибка в Visual Studio 2005 и 2008 не была установлена, я думаю, что она выполнила свою работу.

Я попытался вручную редактировать реестр:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows

где я вручную ставил CurrentInstallFolder как C:\Program Files\Microsoft SDKs\Windows\v7.1\ и CurrentVersion как 7.1.7600.0.30514. Если я посмотрю на свойства проекта и нажимаю туда различные пути/переменные → more → Макросы, я вижу, что $(WindowsSdkDir) верен.

Любая идея о том, что я должен попробовать? Никогда не сталкивался с этой проблемой на старом компьютере разработки с Windows 7 и VS 2012.

L.E. в качестве примечания, если я попробую новый проект с инструментами v120, он работает, но мне нужны инструменты Windows7.1SDK.

Ответ 1

При попытке скомпилировать проект с помощью набора инструментов платформы для Windows7.1SDK...

Это не допустимый выбор в "новой" установке для VS2013. Не совсем понятно, что вы делали, это, конечно, уже не "свежо". Обращайтесь с Regedit.exe как загруженное оружие, набор ключей реестра, который настраивает VS, в последнее время становится довольно сложным.

Сбой компилятора с -1073741515 == 0xC0000135 == STATUS_DLL_NOT_FOUND. Разумеется, это довольно серьезная ошибка, она не должна возникать, когда вы нацеливаете SDK 7.1, поскольку этот файл все еще использует тот же самый компилятор, изменен только каталог SDK. Сам компилятор, а также библиотеки DLL, которые он использует, не являются частью SDK и предоставляются только в том случае, если на компьютере не установлено VS. Вы можете использовать SysInternals Process Monitor для диагностики этого процесса, вы увидите, что процесс CL.EXE ищет DLL и не находит его.

Правильный правильный способ нацеливания 7.1 заключается в использовании набора инструментов v120_xp. Это создает программы, которые все еще могут работать на XP, автоматически также выбирает SDK 7.1A, который был установлен на вашем компьютере. Попробуйте отменить сделанные вами изменения.

Ответ 2

Ссылка на решение Yodans из Как построить с помощью набора инструментов платформы v90 в VS2012 без VS2008, используя Windows SDK?:

Как указал Ханс Пассант, cl.exe ищет mspdb100.dll(среди прочих) и не находит их. Необходимые файлы находятся в каталоге, указанном в 7. ниже:

Моя рабочая настройка:

  • VS2013 необходимо использовать VS2010 libs
  • Использование инструментов сборки WinSDK 7.1 (v100) в VS2013
  • clean install, удалив все, упомянутые в примечаниях к выпуску sdk (можно загрузить по адресу http://www.microsoft.com/en-us/download/details.aspx?id=8279 под категорию Подробности)
    1. Microsoft Windows SDK для Windows 7 (7.1) (файлы основного ядра Windows SDK)
    2. Application Verifier
    3. Средства отладки для Windows
    4. Инструментарий производительности Windows
    5. Microsoft Help Viewer 1.0
    6. Распространяемый Microsoft Visual С++ 2010
    7. Стандартная версия Microsoft Visual С++ 2010
    8. Кроме того, удалены все связанные с .NET и VС++ MS Software (не проверены в случае необходимости)
выбор Windows7.1SDK как набора инструментов платформы в VS2013 ошибка MSB6006: "CL.exe" вышел с кодом -1073741515 cl.exe ищет один из msobj100.dll, mspdb100.dll, mspdbcore.dll и mspdbsrv.exe Добавлено в PATH: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE Работы по сборке и двоичные файлы можно использовать!

Я сделал ошибку:

Ответ 3

Следующие шаги работают для меня в VS 2017.

1.Закрыть VS 2017. 2. Перезагрузить машину. 3. Раскройте решение в VS 2017. 4. Постройте проект. На этот раз я не получил следующую ошибку, и она успешно собирается.

ошибка msb6006 "link.exe" завершена с кодом -1073741819.