我刚刚将 Visual Studio 2012 与 Visual Studio 2010 一起安装。问题是我无法将简单项目从 2010 转换为 2012 - 它们无法链接到 kernel32.lib 等文件或包含 windows.h 等文件。我的系统还安装了 Windows SDK 7.1。
我曾尝试为我的 x86 和 x64 用户平台使用 Property Manager(因为我在那里添加了适当的 $(DXSDK_DIR) 引用),结果却是混合的结果 - 有时它只是工作,有时它编译但不链接,其他时候它只是停在 windows.h
例如,目前我正在
1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
或者
1>Source.cpp(2): fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
(取决于是否包含“windows.h”)仅在 x64 中具有简单的“hello world”类型程序。
我现在可以在项目属性中Active(Debug) / Active(x64) -> VC++ Directories -> Include Directories
看到$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(DXSDK_DIR)Include
. 如果我展开该输入框并单击编辑,我会看到:
$(VCInstallDir) = C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\
$(WindowsSDK_IncludePath) = c:\Program Files (x86)\Windows Kits\8.0\Include\um;c:\Program Files (x86)\Windows Kits\8.0\Include\shared;c:\Program Files (x86)\Windows Kits\8.0\Include\WinRT
虽然我的平台工具集 v110 windows.h 位于c:\Program Files (x86)\Windows Kits\8.0\Include\um\Windows.h
(所以应该没有问题)。如果我选择 Windows SDK 7.1 作为平台工具集,这些东西就可以工作。
除了格式化和重新安装 Windows 之外的任何解决方案?
LE 如果我用系统内的绝对路径替换 $(variable) 目录,一切正常。我不明白我为什么要这样做,因为我也在与其他人分享这个项目。