2016-02-05 3 views
5

Я пытаюсь скомпилировать простую программу в Visual Studio для 64-битной платформы. При попытке компиляции, я получаю ошибку: LINK: фатальный LNK1158 ошибки: не удается запустить «» rc.exeLNK1158 не может запустить rc.exe x64 Visual Studio

Я был многих обсуждения темы, где он указывает на то, чтобы скопировать rc.exe и rcdll.dll из папки Windows Kits в папку VC/bin. Я сделал это безрезультатно. Мне кажется, что моя версия Visual Studio может просто не выглядеть в каталоге, я думаю, что он ищет этот файл rc.exe. Есть ли способ идентифицировать w/in Visual Studio, в каком каталоге он ищет этот исполняемый файл?

(Было высказано предположение, что эта проблема может быть дубликатом вопроса и ответа, предоставленного по адресу Cannot compile with VC++/VS2010 targeting x64: LNK1158: cannot run cvtres.exe.Однако это не похоже на то, потому что там путь был поврежден некоторыми службами NV, которые выполнялись в системе. У меня нет этой проблемы, так как мой полный путь появляется, когда я набираю echo% PATH%. При этом эта ссылка привела меня к правильному решению, приведенному ниже)

+0

Попробуйте включить «Подробный» вывод для сборки в Visual Studio. Это всегда помогало мне в подобных случаях. –

+0

Возможный дубликат [Невозможно скомпилировать с таргетингом VC++/VS2010 x64: LNK1158: невозможно запустить cvtres.exe] (http://stackoverflow.com/questions/9481877/cannot-compile-with-vc-vs2010-targeting-x64-lnk1158 -cannot-run-cvtres-exe) –

+0

Спасибо за это руководство. Это также помогло с ошибкой LNK1158 от Qt Creator. Это была та же проблема. Мне только пришлось переместить rc.exe и rcdll.dll из пути VS в путь компиляции Qt. – John

ответ

16

Ошибка была действительно там Я размещал файлы rc.exe и rcdll.dll. Поскольку я компилирую на 64-битную платформу, Visual Studio использует 64-битный «кросс-компилятор», который не находится в $ (VSInstallDir) \ VC \ bin, но в $ (VSInstallDir) \ VC \ bin \ x86_amd64.

Таким образом, решение моей проблемы состояло в том, чтобы скопировать файлы rc.exe и rcdll.dll из папки C: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x86 в файл $ (VSInstallDir) \ VC \ bin \ x86_amd64.

Выполнение этой первой ошибки.

Однако после сборки возникла новая ошибка: LNK1158: невозможно запустить cvtres.exe. В отличие от моей первой ошибки rc.exe, этот файл на самом деле уже находится в папке $ (VSInstallDir) \ VC \ bin. Проблема в том, что кросс-компилятор ищет его в своем собственном каталоге. Поэтому я просто скопировал этот файл из папки $ (VSInstallDir) \ VC \ bin в папку $ (VSInstallDir) \ VC \ bin \ x86_amd64.

Как только я это сделал, мой проект был построен и побежал.

+0

Я пытался установить Scrapy, когда у меня была первая ошибка, о которой вы говорили выше. Первая часть решения работала для меня. Благодаря! – Fandango68