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 мне.