错误 LINK : fatal error LNK1158: 无法运行“rc.exe”

问题 软件环境:Windows 10 Pro + Visual Studio 2015 然后安装了 Windows 10 SDK Windows 10 SDK 是用这个 ISO 文件安装的:17134.12.180419-0858.rs4_release_svc_prod2_WindowsSDK.iso

在 Visual C++ 工程中,我将 Target platform 从 8.1 切换到 10.0.17134.0:

然后就发现原本编译正常的 C++ 工程现在编译出错了。在 link 的时候,出现以下错误:

1>—— Build started: Project: PHM-Hnode-Std-GuiLauncher, Configuration: Debug x64 —— 1> MainFrameBaseClass.cpp 1> MainFrame.cpp 1> main.cpp 1> Generating Code… 1>LINK : fatal error LNK1158: cannot run ‘rc.exe’ ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

调查 由于以前在 Target Platform Version 设置为 8.1 的时候编译是正常的,所以我猜想,是不是这个 rc.exe 在 8.1 版本的 SDK 中存在,但在 10.0.17134.0 版本的 SDK 中被遗漏了。

果然在 8.1 版本的 SDK 中发现了 rc.exe,与此同时还看到了一个 rcdll.dll。

目录:

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

Windows 10 SDK 的目录结构和 Windows 8.1 SDK 的目录结构有所不同:

在 10.0.17134.0 的目录下发现 rc.exe 和 rcdll.dll 是存在的:

所以说,rc.exe 和 rcdll.dll 文件并不缺失,只是编译的时候连接器没有找到它们。

解决 我也不知道如何让链接器找到这两个文件,且找到正确的版本。所以我把

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

这个目录下的 rc.exe 和 rcdll.dll 拷贝到我的 Visual C++ 的 VC/Bin 目录下:

D:\Apps\x86\Microsoft\Visual_Studio\v14.0\VC\bin

注意我的 Visual C++ 的安装目录可能和你的不同,你需要用你自己的的 VC/Bin 目录。

然后再编译程序,错误解决了:

1>—— Rebuild All started: Project: PHM-Hnode-Std-GuiLauncher, Configuration: Debug x64 —— 1> MainFrameBaseClass.cpp 1> MainFrame.cpp 1> main.cpp 1> Generating Code… 1> PHM-Hnode-Std-GuiLauncher.vcxproj -> D:\DevSpace\Gitpub\phm-prototype-180601\Dev\Build\MSVC_2015\Win32\Output\x64\Debug\PHM-Hnode-Std-GuiLauncher.exe 1> PHM-Hnode-Std-GuiLauncher.vcxproj -> D:\DevSpace\Gitpub\phm-prototype-180601\Dev\Build\MSVC_2015\Win32\Output\x64\Debug\PHM-Hnode-Std-GuiLauncher.pdb (Partial PDB) ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

转载于:https://my.oschina.net/u/3093577/blog/3009970

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值