問題 軟件環境:Windows 10 Pro + Visual Studio 2015 而後安裝了 Windows 10 SDK Windows 10 SDK 是用這個 ISO 文件安裝的:17134.12.180419-0858.rs4_release_svc_prod2_WindowsSDK.isonode
在 Visual C++ 工程中,我將 Target platform 從 8.1 切換到 10.0.17134.0:ui
而後就發現本來編譯正常的 C++ 工程如今編譯出錯了。在 link 的時候,出現如下錯誤:prototype
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 ==========orm
調查 因爲之前在 Target Platform Version 設置爲 8.1 的時候編譯是正常的,因此我猜測,是否是這個 rc.exe 在 8.1 版本的 SDK 中存在,但在 10.0.17134.0 版本的 SDK 中被遺漏了。ip
果真在 8.1 版本的 SDK 中發現了 rc.exe,與此同時還看到了一個 rcdll.dll。get
目錄:it
C:\Program Files (x86)\Windows Kits\8.1\bin\x86io
Windows 10 SDK 的目錄結構和 Windows 8.1 SDK 的目錄結構有所不一樣:編譯
在 10.0.17134.0 的目錄下發現 rc.exe 和 rcdll.dll 是存在的:form
因此說,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 ==========