问题软件环境:Windows 10 Pro + Visual Studio 2015 然后安装了 Windows 10 SDKWindows 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 errorLNK1158: 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.exe1> 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 ==========

02-14 15:30