我正在尝试在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%时,我没有遇到这个问题,因为我的完整路径出现了。就是说,该链接确实引导我找到正确的解决方案,如下所示)
答案 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