Visual Studio не может создать из-за rc.exe
Я искал в Интернете и не нашел ничего похожего на мою проблему.
Я создал пустой проект на С++ и добавил main.cpp с возвратом, и я не могу его построить. Вот сообщение, которое я получаю:
1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1158: cannot run 'rc.exe'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Есть ли где-то в VS2012, где я могу указать, где найти этот исполняемый файл? Я установил Windows 7 SDK, и у меня есть этот исполняемый файл:
C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin
Я исхожу из Code:: Blocks и без проблем использую mingw-gcc, но в последнее время мне нужны VS для управляемых реализаций, поэтому я надеюсь, что у кого-то есть идея.
Ответы
Ответ 1
Обнаружено это в Google... Я бы предположил, что в вашем случае вы скопировали rc.exe
и rcdll.dll
в visual studio 2012\vc\bin
или везде, где вы его установили:
Часть 2: FIX LINK: fatal error LNK1158: cannot run ‘rc.exe’
Добавьте это в переменные среды PATH:
C:\Program Files (x86)\Windows Kits\8.0\bin\x86
Скопируйте эти файлы:
rc.exe
rcdll.dll
С
C:\Program Files (x86)\Windows Kits\8.0\bin\x86
Для
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
Или я также нашел это:
Microsoft оставила несколько вещей из своего пакета MSVT. Поскольку никто не знает, были ли они оставлены по ошибке или по лицензионным причинам, никто из MSVC не слишком заинтересован в их выдаче. Несколько поисков Google включают некоторые сложные источники. К счастью, Microsoft окончательно разузнала и решила эту проблему и многое другое.
http://msdn.microsoft.com/vstudio/express/support/faq/default.aspx#pricing
http://msdn.microsoft.com/vstudio/express/support/install/
Хорошее количество отсутствующих файлов MSVT есть, но отсутствующих файлов SDK нет.
и это:
У меня была та же проблема, которую я решил, выполнив это:
- Установка Microsoft.Net Framework 2.0
- Добавление пути к файлам .NET Framework (для меня "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" ) для глобальных параметров компиляторa > Программы > Дополнительные пути в Code:: Blocks.
Теперь я могу создавать и связывать файлы ресурсов без ошибок.
Ответ 2
Мы столкнулись с этой проблемой с нашими сборками CMake/Visual Studio 2015 после установки VS2017 на машине. Правильное решение в нашем случае - указать версию Window Kit (8.1) в командную строку Visual Studio - в противном случае вы получите комплект Windows 10 по умолчанию, который не включает rc.exe в каталог bin.
например. Меню "Пуск" → "Visual Studio 2015" → VS2015 x64 "Нативные инструменты" Командная строка
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 8.1
Обратите внимание на параметр 8.1 в конце
Ответ 3
Из того, что я нашел, если у вас есть ОС Windows 7, выполнение следующих шагов устранит проблему:
1) перейдите к C:\Program Files (x86)\Microsoft SDK\Windows\v7.1A\Bin
2), затем скопируйте RC.exe и RcDll из этого файла
3) перейдите в C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin и вставьте два файла, которые вы скопировали в него.
У меня была та же проблема, и вышеприведенное решение не сработало. Мое решение было получено от него, и это сработало для меня, если те, что выше не работают, вы можете попробовать.
Ответ 4
Эта ошибка rc.exe
может возникать, если компилятор Visual C++ и Windows 10 SDK не соответствуют одному и тому же году Visual Studio.
Если у вас установлена Visual Studio 2017, и вы установили Build Tools 2015, не выбрав для установки свой собственный Windows SDK 2015 (установка по умолчанию не устанавливает его!), И пытаетесь использовать его для компиляции, вы можете столкнуться с этой проблемой.
В моем случае у меня уже была Visual Studio 2017. Когда я пытался использовать Build Tools 2015 для компиляции библиотеки Python (или, возможно, любой программы), возникла та же ошибка "rc.exe". Я читал, что компилятор VS2015 14.0 C++ может дать сбой, если попытается использовать Windows 10 SDK из Visual Studio 2017.
Я удалил Build Tools 2015 и переустановил его, на этот раз в качестве выборочной установки, выбрав установку как визуальных компонентов C++, так и Windows 10 SDK. Это решило проблему.
Ответ 5
В моем случае у меня была ошибка смешивания и совпадения между проектами, созданными в VS2015 и VS2017. В моем файле .vcxproj есть этот раздел под названием PropertyGroup Label = "Globals" > . У меня был раздел для TargetPlatformVersion = 10.0.15063.0. Когда я удалил TargetPlatformVersion, это решило проблему.
Извините, я не могу скопировать и вставить этот блок здесь, но формат кодирования stackoverflows не позволяет этого.
Ответ 6
Я нахожусь в Windows 7 x64 и Visual Studio 2017. Я получаю эту ошибку, пытаясь скомпилировать cython script.
Вот как я решил:
Я скопировал и вставил rc.exe и rcdll.dll из:
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
к
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64
Ответ 7
Вот мой почти похожий случай:
У меня есть рабочий проект VC2010 под Win7 32bit. Я делаю чистую установку VC2013 под Win8.1 64bit
После успешной конвертации моего проекта с VC2010 на VC2013, во время 1-й компиляции произошел следующий рост:
Готовый генерирующий код
LINK: фатальная ошибка LNK1158: невозможно запустить "rc.exe"
Решение 1:
Удалить целую строку "< ExecutablePath Condition ="... " > ... </ExecutablePath> " в элементе "<PropertyGroup> " в файле NameOfYourSolution.vcxproj в блокноте до запуска VC2013
Решение 2:
Скопируйте только два файла: rc.exe и rcdll.dll из "c:\Program Files (x86)\Windows Kits\8.1\bin\x86 \" to "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\" и компиляция будет успешной!!
Примечание:
a) Не нужно касаться каких-либо переменных PATH или других переменных среды Windows или VC.
b) "Набор инструментов платформы" (Страницы свойств проекта → Свойства конфигурации → Общие) будет автоматически установлен на "Visual Studio 2013 (v120)" (не меняйте его на "Visual Studio 2010", чтобы иметь возможность продолжить разработку вашего проекта под концепциями VC2013)
Ответ 8
В моем случае ошибка произошла из-за плохой настройки в vcxproj. Vcxproj был от третьего лица, поэтому я не уверен, как он попал в это состояние.
В частности, для одной из комбайнов платформы/профиля папка платформы отсутствовала в папке bin Windows SDK:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ExecutablePath>$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin\x86;
правильно, где
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ExecutablePath>$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin;
неверен. Может потребоваться прокрутить до конца окна кода, чтобы увидеть разницу.
Заметим также, что по какой-то странной причине $(WindowsSdkDir) bin\x64; НЕ работал у меня. Попытался выяснить, почему, когда rc.exe определенно существует в этой папке, но я сдался.
По-моему, решения предыдущих плакатов, которые предполагают копирование rc.exe повсюду, ошибочны, потому что ваш проект не будет работать ни на одной машине. Если вы правильно исправите пути в проекте, он должен работать на любом компьютере с правильной установкой Windows SDK.
Ответ 9
Это может быть немного устаревшим. Но если копирование rc.exe и exdll.dll не получилось, есть вероятность, что Windows sdk не будет установлена должным образом, даже если существует папка sdk windows. Вы можете обновить sdk для win 8 на следующей странице:
http://msdn.microsoft.com/en-US/windows/hardware/hh852363
После повторной установки sdk проблема будет решена. Также убедитесь, что набор инструментов платформы установлен правильно.
Ответ 10
Я нахожусь в Windows 10 x64 и Visual Studio 2017. Я скопировал и вставил rc.exe и rcdll.dll из:
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
в
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
он работает с: (создателем qt 5.7.1)
Ответ 11
У меня была такая же проблема на VS 2013, и я смог ее исправить, изменив Platform Toolset
.
Вы можете найти его в настройках проекта, общий.
например. переключение Platform Toolset
в VS 2010 приведет к тому, что VS будет использовать SDK Windows\v7.0A.
Вы можете проверить, какой путь SDK используется, добавив это в событие предварительной сборки:
echo using SDK $(WindowsSdkDir)
Ответ 12
Я использую Windows 7 с VS 2013 (обновление 3) и Intel Parallel Studio XE Composer Edition для Fortran Windows (обновление 5). Из коробки у меня была такая же проблема.
Как только я исправил недостающую проблему rc.exe, у меня возникла другая проблема. В компоновщике отсутствует kernel32.lib.
Я исправил обе проблемы, обновив параметры компилятора Intel (TOOLS- > Options...- > Intel Composer XE- > Visual Fortran- > Compilers).
На вкладке Win32 я добавил:
Исполняемые файлы: C:\Program Files (x86)\Windows Kits\8.0\bin\x86; (непосредственно перед $(PATH))
Библиотеки: C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86; (в конце)
Для вкладки x64 я добавил:
Исполняемые файлы: C:\Program Files (x86)\Windows Kits\8.0\bin\x64; (непосредственно перед $(PATH))
Библиотеки: C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64; (в конце)
Обновление...
Мне также не хватало некоторых файлов заголовков SDK (winver.h и winapifamily.h). Я добавил следующее в ту же область TOOLS- > Options....
Для вкладок win32 и x64
Включает: C:\Program Files (x86)\Windows Kits\8.0\Include\um; C:\Program Files (x86)\Windows Kits\8.0\Include\shared;
Ответ 13
Я только что вычислил один (из всех 3) проектов в моем решении VS2010 (SDK7.1) (проекты связаны в последовательной цепочке линейных зависимостей), имел файл .rc в файлах проекта, который был пуст,
Удаление пустого файла .rc(из проекта, не удаляя его), решило проблему "Неустранимая ошибка LNK1158:... cvtres.exe".
Обновление: Следующая копия исправила проблему:
xcopy "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\"
Это позволит WinSDK7.1 через MSBuild скомпилировать файлы .rc в исполняемые файлы.
Ответ 14
Я недавно столкнулся с этой проблемой. У меня установлены VS 2015 и VS 2017, установлены Windows 8.1 и 10.
Командная строка с VS 2017 работает как положено, rc.exe виден. В VS 2015 это не так. На самом деле сценарий vcvarsall.bat из VS 2015 действительно добавляет путь к комплекту Windows 10 в переменную PATH, но добавляет немного неправильный путь. Это добавляет путь к
"C:\Program Files (x86)\Windows Kits\10\bin\x86"
в то время как фактический путь
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86"
Похоже, что обновление Windows 10 kit (или установка VS 2017) привело к этой проблеме.
Таким образом, решение простое: просто создайте символические ссылки в папке "C:\Program Files (x86)\Windows Kits\10\bin", указывающие на соответствующие папки в базовой папке, например, символическую ссылку "x86" для папки "10.0"..17763.0\x86 "," x64 "для" 10.0.17763.0\x64 "и т.д.
Ответ 15
Это может быть вызвано vcxproj, возникшим в предыдущих версиях Visual Studio или сменой набора инструментов платформы в свойствах конфигурации → Общие.
Если это так, возможно Решение:
1) Перейдите в Свойства конфигурации → Каталоги VС++
2) Выберите раскрывающийся список для исполняемых каталогов
3) Выберите "Inherit from parent или Project Defaults"
Ответ 16
Это даже проще, чем в Visual Studio 2017. Следуйте этим инструкциям: https://docs.microsoft.com/en-us/visualstudio/install/modify-visual-studio для изменения с помощью Microsoft Visual Studio Installer.
Внутри установщика Microsoft Visual Studio нажмите кнопку "Изменить" в установленном пакете Visual Studio, убедитесь, что в разделе "Разработка рабочего стола с помощью C++) отмечена поддержка MFC и ATl (x86 и x64) под сводкой.
Ответ 17
Добавить в окно переменной среды sdk 8.1 path
C:\Program Files (x86)\Windows Kits\8.1\bin\x64
затем откройте командную строку Visual Studio x64 Native tools и введите
vcvarsall.bat
Ответ 18
Если вам действительно нужно использовать SDK Windows 10 с Visual Studio 2015, вам нужно загрузить более старую версию в sdk-архиве. Более новая версия SDK изменила место исполняемого файла rc, а обновление MSBuild для Visual Studio 2015 3 (последняя версия) не может найти его. По крайней мере версия 10.0.14393.795 SDK Windows по-прежнему совместима с Visual Studio 2015.
Ответ 19
В моем случае я установил Windows SDK 10586 через Visual Studio 2015 → Изменить, после чего были установлены следующие пути.
C:\Program Files (x86)\Windows Kits\10\bin\arm64\rc.exe
C:\Program Files (x86)\Windows Kits\10\bin\x64\rc.exe
C:\Program Files (x86)\Windows Kits\10\bin\x86\rc.exe
Ответ 20
Возможно файл проекта был тронут VS2017. Затем, когда вы связываете проект в 2015 году, "ССЫЛКА: фатальная ошибка LNK1158: не удается запустить" rc.exe "" может затормозить сборку.
В vcxproj попробуйте:
1) заменить:
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
с: <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
2) удалить: <VCProjectVersion>15.0</VCProjectVersion>
3) заменить: <PlatformToolset>v141</PlatformToolset>
на: <PlatformToolset>v140</PlatformToolset>
Ответ 21
Для Visual Studio Community 2019, скопируйте файлы в ответах выше (rc.exe rcdll.dll
) в C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\Hostx86\x86
мне.