LNK1158无法运行rc.exe x64 Visual Studio

时间:2016-02-05 03:49:58

标签: visual-studio-2013 64-bit rc.exe

我正在尝试在Visual Studio中为64位平台编译一个简单的程序。在尝试编译时,我收到错误: 链接:致命错误LNK1158:无法运行'rc.exe'

我去过许多讨论线程,它指示将rc.exe和rcdll.dll从Windows Kits文件夹复制到VC / bin文件夹。我这样做无济于事。我发现我的Visual Studio版本可能没有查看目录,我认为它正在寻找这个rc.exe文件。有没有办法在Visual Studio中识别它正在寻找这个可执行文件的目录?

(有人认为这个问题可能与Cannot compile with VC++/VS2010 targeting x64: LNK1158: cannot run cvtres.exe提供的问题和答案重复。但是,似乎并非如此,因为在那里,路径被某些NV服务破坏了当我输入echo%PATH%时,我没有遇到这个问题,因为我的完整路径出现了。就是说,该链接确实引导我找到正确的解决方案,如下所示)

3 个答案:

答案 0 :(得分:19)

错误确实是我放置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:无法运行&#c; cvtres.exe'。与我的第一个rc.exe错误相反,此文件实际上已驻留在$(VSInstallDir)\ VC \ bin文件夹中。问题是交叉编译器正在自己的目录中查找它。所以我只是将该文件从$(VSInstallDir)\ VC \ bin文件夹复制到$(VSInstallDir)\ VC \ bin \ x86_amd64文件夹。

一旦我这样做,我的项目就会建成并运行。

答案 1 :(得分:1)

我在VS2015 Windows 10中编译python代码时遇到此错误 复制到anaconda3。

  

rc.exe

     

rcdll.dll

来自

  

C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ 10.0.17134.0 \ x64

并粘贴到Visual Studio安装文件夹

  

C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ bin

成功生成了代码。

答案 2 :(得分:0)

绝对容易地将env变量设置到包含丢失文件的文件夹中,而不是进行复制。

set WINKITS="C:\\Program Files (x86)\\Windows Kits\\8.0\\bin\\x86"
set PATH=%WINKITS%;%PATH%

使用您自己的 Windows套件

的版本更改 8.0