Ошибка msb6006 cl exe завершилась с кодом 1073741515 visual studio
Я попытался вручную редактировать реестр:
где я ставлю вручную CurrentInstallFolder как C:\Program Files\Microsoft SDKs\Windows\v7.1\ а также CurrentVersion как 7.1.7600.0.30514 , Если я посмотрю на свойства проекта и нажму на различные пути / переменные в них -> more -> Macros, я увижу, что $ (WindowsSdkDir) верен.
Любая идея относительно того, что я должен попробовать? Никогда не сталкивался с этой проблемой на старом компьютере для разработки с Windows 7 и VS 2012.
L.E. как примечание, если я пытаюсь создать новый проект с инструментами v120, он работает, но мне нужны инструменты Windows7.1SDK.
Решение
При попытке скомпилировать проект с помощью Platform Toolset для Windows7.1SDK …
Это не правильный выбор в «свежей» установке для VS2013. Не очень понятно, что вы делали, это, конечно, уже не «свежо». Обращайтесь с Regedit.exe как с загруженным оружием, набор ключей реестра, который настраивает VS, с недавних пор становится довольно запутанным.
Сбой компилятора с -1073741515 == 0xC0000135 == STATUS_DLL_NOT_FOUND. Это довольно серьезная ошибка, конечно, это должно никогда происходят, когда вы нацеливаетесь на SDK 7.1, так как он все еще использует тот же компилятор, изменяется только каталог SDK. Сам компилятор, а также используемые им DLL не являются частью SDK и предоставляются только в том случае, если на машине не установлена VS. Вы можете использовать Process Monitor SysInternals для диагностики этого, вы увидите, что процесс CL.EXE ищет DLL и не находит ее.
правильный путь к цели 7.1 — использовать набор инструментов v120_xp. Он собирает программы, которые все еще могут работать в XP, автоматически выбирает SDK 7.1A, который был установлен на вашем компьютере. Попробуйте отменить внесенные изменения.
Другие решения
Как указывает Ганс Пассант, cl.exe ищет mspdb100.dll (среди прочих) и не находит их.
Необходимые файлы находятся в каталоге, указанном в 7. ниже:
Моя рабочая установка:
Ошибка, которую я сделал:
- скопировал файлы из 6. выше в C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin, полагая, что этот каталог находится в PATH, но это не так!
- Так что лучше делайте, как предложено в 7. выше или Йоданом в Как собрать набор инструментов платформы v90 в VS2012 без VS2008, используя Windows SDK?
Следующие шаги работают для меня в VS 2017.
1.Закройте VS 2017.
2. Перезагрузка машины.
3. Раскройте решение в VS 2017.
4. Создайте проект.
На этот раз я не получил следующую ошибку, и она успешно собирается.
Симптомы
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(242,5): ошибка MSB6006: «CL.exe» завершился с кодом-1073741515.
Причина
Эта проблема возникает потому, что номер версии файла Mspdb110.dll не был правильно обновлен на момент последнего обновления.
Сведения об обновлении программного обеспечения
Информация о скачивании
Windows Embedded Compact 2013 ежемесячное обновление (августа 2015) от корпорации Майкрософт доступна. Чтобы загрузить это обновление Windows Embedded Compact 2013 ежемесячно, перейдите к Microsoft OEM Online или MyOEM.
Предварительные условия
Это обновление поддерживается только в том случае, если также были установлены все ранее выпущенные обновления для данного продукта.
Необходимость перезагрузки
После установки этого обновления необходимо выполнить чистую сборку всей платформы. Для этого воспользуйтесь одним из следующих способов:
В меню Построение выберите пункт Очистить решениеи выберите команду Построить решение.
В меню Построение выберите команду Перестроить решение.
Необходимо перезагрузить компьютер после установки этого обновления.
Сведения о замене обновлений
Это обновление не заменяет других обновлений.
Английская версия данного пакета обновления содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.
Файлы, включенные в данный пакет обновления
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Дополнительные сведения о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.
This article describes a problem that occurs in which you receive an "Error MSB6006: "CL.exe" exited with code -1073741515" error message when you build a basic application by using the ARM SDK in Windows Embedded Compact 2013. An update is available to resolve this problem. Before you install this update, all previously issued updates for this product must be installed.
Symptoms
You create a basic "Hello World" application by using the ARM SDK for a device that is running the May 2015 update for Windows Embedded Compact 2013. When you build the application, the build is unsuccessful and you receive the following error message:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(242,5): error MSB6006: "CL.exe" exited with code -1073741515.
Cause
This problem occurs because the version number of the Mspdb110.dll file was not updated correctly when the file was last updated.
Software update information
Download information
Windows Embedded Compact 2013 Monthly Update (August 2015) is now available from Microsoft. To download this Windows Embedded Compact 2013 monthly update, go to Microsoft OEM Online or MyOEM.
Prerequisites
This update is supported only if all previously issued updates for this product have also been installed.
Restart requirement
After you apply this update, you must perform a clean build of the whole platform. To do this, use one of the following methods:
On the Build menu, click Clean Solution, and then click Build Solution.
On the Build menu, click Rebuild Solution.
You do not have to restart the computer after you apply this update.
Update replacement information
This update does not replace any other updates.
The English version of this software update package has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Files that are included in this update package
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Learn about the terminology that Microsoft uses to describe software updates.
This article describes a problem that occurs in which you receive an "Error MSB6006: "CL.exe" exited with code -1073741515" error message when you build a basic application by using the ARM SDK in Windows Embedded Compact 2013. An update is available to resolve this problem. Before you install this update, all previously issued updates for this product must be installed.
Symptoms
You create a basic "Hello World" application by using the ARM SDK for a device that is running the May 2015 update for Windows Embedded Compact 2013. When you build the application, the build is unsuccessful and you receive the following error message:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(242,5): error MSB6006: "CL.exe" exited with code -1073741515.
Cause
This problem occurs because the version number of the Mspdb110.dll file was not updated correctly when the file was last updated.
Software update information
Download information
Windows Embedded Compact 2013 Monthly Update (August 2015) is now available from Microsoft. To download this Windows Embedded Compact 2013 monthly update, go to Microsoft OEM Online or MyOEM.
Prerequisites
This update is supported only if all previously issued updates for this product have also been installed.
Restart requirement
After you apply this update, you must perform a clean build of the whole platform. To do this, use one of the following methods:
On the Build menu, click Clean Solution, and then click Build Solution.
On the Build menu, click Rebuild Solution.
You do not have to restart the computer after you apply this update.
Update replacement information
This update does not replace any other updates.
The English version of this software update package has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Files that are included in this update package
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Learn about the terminology that Microsoft uses to describe software updates.
I tried running the supplied "Windows SDK Configuration Tool" and besides getting an error about Visual Studio 2005 and 2008 not being installed I think it did its job.
I tried manually editing the registry:
where I manually put CurrentInstallFolder as C:\Program Files\Microsoft SDKs\Windows\v7.1\ and CurrentVersion as 7.1.7600.0.30514 . If I look at the project properties and click the different paths / variables in there -> more -> Macros, I can see that $(WindowsSdkDir) is correct.
Any idea as to what I should try? Never ran into this problem on the old development computer with Windows 7 and VS 2012.
L.E. as a note, if I try a new project with the v120 tools, it works, but I need the Windows7.1SDK tools.
Just as an aid, the exit code can be interpreted as 0xC0000135 (the unsigned version of the code you have), which will probably turn up more results when doing a search. A quick search for that turns up a possibility that you may be linking 32-bit libraries in a 64-bit project? Or you've not run the correct vcvarsall.bat?
Thanks for the reply! I'm running from within the IDE. Win32 Debug, Release, x64 Debug, Release, with Clean Project in between give the same error.
For that matter I created a new Console Application project and it doesn't compile with Windows7.1SDK.
All I can suggest is to check the 2013 equivalent of "Projects and Solutions" in Options (sorry, I have only have 2008 here!!), and check that the paths to Library Files for win32 and win64 projects are set correctly ( $(WindowsSdkDir)\lib and $(WindowsSdkDir)\lib\x64 or similar).
Include directories are $(WindowsSdkDir)\include;$(VCInstallDir)include and if I expand and click on macros, I can see $(WindowsSdkDir) as C:\Program Files\Microsoft SDKs\Windows\v7.1\ which is correct on my machine. Same for libs - $(WindowsSdkDir)lib;$(VCInstallDir)lib .
3 Answers 3
When trying to compile a project with Platform Toolset to Windows7.1SDK.
That's not a valid selection in a "fresh" install for VS2013. Not very clear what you've been doing, it certainly isn't "fresh" anymore. Do treat Regedit.exe as a loaded weapon, the registry key set that configures VS has been getting pretty doggone convoluted as of late.
The compiler crashes with -1073741515 == 0xC0000135 == STATUS_DLL_NOT_FOUND. That's a pretty serious mishap of course, it should never occur when you target SDK 7.1 since that still uses the same compiler, only the SDK directory is changed. The compiler itself, as well as the DLLs it uses, are not part of the SDK and only are provided if the machine doesn't have VS installed. You can use SysInternals' Process Monitor to diagnose this, you'll see the CL.EXE process searching for a DLL and not finding it.
The correct way to target 7.1 is to use the v120_xp toolset selection. That builds programs that can still run on XP, it automatically also selects the 7.1A SDK that was installed on your machine. Do try to undo the changes you've made.
Читайте также: