用于 x64 平台的 VC++2010 无法识别的符号;$(WindowsSDK_LibraryPath_x64)



我已经重新安装了VStudio2010,并且遇到了与此线程相同的问题。

基本问题是无法为 x64 平台链接,链接器抱怨找不到 kernel.lib。

如提供的链接中所述,我可以通过手动添加缺少的库和包含路径来弄清楚,但是通过查看 ConfigurationProperties->VC++Directory 上的值,已经有一个定义的符号 $(WindowsSDK_LibraryPath_x64) 没有其宏值(更清楚地说,该符号列在继承的值中,但从未在宏扩展中定义)。

显然,这个符号应该用作 x64 平台的起点(我想这就是它作为魅力工作之前的方式),但由于某种原因,它未能在安装时声明为宏。

那么问题是,为 IDE 定义的所有符号都在哪里?你们中的任何人劫持了这个符号来解决这种安装问题。

我设法解决了这个问题,虽然我仍然不确定它的来源是什么,为什么首先 VStudio 安装程序无法正确设置它?

您需要根据安装添加两个具有适当值的注册表字符串(在我的例子中是 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include & Lib\x64)

Registry:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SDKsWindowsv7.0A@IncludeFolder
Registry:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SDKsWindowsv7.0A@LibFolder

并将这两行添加到文件中 Microsoft.Cpp.x64.v100.props 引用注册表项,此解决方案也适用于 v7.1 Sdk

<WindowsSDK_IncludePath Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SDKsWindowsv7.0A@IncludeFolder)     </WindowsSDK_IncludePath>
<WindowsSDK_IncludePath Condition="'$(WindowsSDK_IncludePath)' == ''">$(WindowsSdkDir)Include</WindowsSDK_IncludePath>
<WindowsSDK_LibraryPath_x64 Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SDKsWindowsv7.0A@LibFolder)</WindowsSDK_LibraryPath_x64>
<WindowsSDK_LibraryPath_x64 Condition="'$(WindowsSDK_LibraryPath_x64)' == ''">$(WindowsSdkDir)Libx64</WindowsSDK_LibraryPath_x64>

在此更改之后,宏将出现在 LibDir 和 IncludeDir 的列表中,并且 x64 编译将起作用。如果有人使用默认SDK7.0A安装了VStudio2010并工作,这将是一个很好的参考,这个文件看起来如何。

最新更新