Visual Studio 2012 alongside 2010 - kernel32.lib, windows.h
Visual Studio 2012 alongside 2010 - kernel32.lib, windows.h
我刚刚安装了Visual Studio 2012和Visual Studio 2010。问题是,从2010年到2012年,我无法转换简单的项目-它们无法链接到kernel32.lib等文件或包含windows.h等文件。我的系统还安装了WindowsSDK7.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中使用简单的"helloworld"类型程序。
在Active(Debug) / Active(x64) -> VC++ Directories -> Include Directories
的项目属性中,我现在可以看到$(VCInstallDir)include;$(VCInstallDir)atlmfcinclude;$(WindowsSDK_IncludePath);$(DXSDK_DIR)Include
。如果我展开输入框并单击编辑,我会看到:
$(VCInstallDir) = C:Program Files (x86)Microsoft Visual Studio 11.0VC
$(WindowsSDK_IncludePath) = c:Program Files (x86)Windows Kits8.0Includeum;c:Program Files (x86)Windows Kits8.0Includeshared;c:Program Files (x86)Windows Kits8.0IncludeWinRT
虽然我的平台工具集v110windows.h位于c:Program Files (x86)Windows Kits8.0IncludeumWindows.h
(所以应该没有问题)。如果我选择WindowsSDK7.1作为平台工具集,那么Stuff就会工作。
除了格式化和重新安装Windows之外,还有什么解决方案吗?
L.E.如果我在系统中用绝对路径替换$(变量)目录,一切都会正常。我不明白我为什么要这么做,因为我也在和其他人分享这个项目。
我知道上面几乎有一个答案。但是
问题似乎是在安装VS2012和VS2010时,VS2012的配置无法正常工作。
修复方法是编辑%home%\AppData\Local\Microsoft\MMSBuild\v4.0中的道具文件。
这些是我使用SDK v8.1时使用的文件。
用于32位内部版本的第一个Microsoft.Cpp.Win32.user.props:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>C:Program Files (x86)Windows Kits8.1includeum;C:Program Files (x86)Windows Kits8.1includeshared;C:Program Files (x86)Windows Kits8.1includewinrt;$(IncludePath)</IncludePath>
<LibraryPath>C:Program Files (x86)Windows Kits8.1Libwinv6.3umx86;$(LibraryPath)</LibraryPath>
<ExecutablePath>C:Program Files (x86)Windows Kits8.1binx86;$(ExecutablePath)</ExecutablePath>
</PropertyGroup>
</Project>
现在Microsoft.Cpp.x64.user.props用于64位构建:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>C:Program Files (x86)Windows Kits8.1includeum;C:Program Files (x86)Windows Kits8.1includeshared;C:Program Files (x86)Windows Kits8.1includewinrt;$(IncludePath)</IncludePath>
<LibraryPath>C:Program Files (x86)Windows Kits8.1Libwinv6.3umx64;$(LibraryPath)</LibraryPath>
<ExecutablePath>C:Program Files (x86)Windows Kits8.1binx64;$(ExecutablePath)</ExecutablePath>
</PropertyGroup>
</Project>
我希望这能帮助其他人解决这个问题,我还没有在其他地方找到解决方案。
我也遇到了类似的问题
在我的情况下,这是因为在项目设置中没有继承正确的路径。
检查路径是否继承于:项目->属性->VC++目录
在包含和库目录下转到编辑。
确保已检查Inherit from parent or project defaults
。
VS2012默认属性和宏设置正确。(尽管我遇到了常见的安装问题,因为它甚至没有安装C++核心库,所以我不得不替换所有的VC目录)
- 使用 VS2015 在 Windows 10 上构建 Fortran .lib x64 位并将其链接到 C++
- 在 Windows 10 下使用 GTest 的 CMake - 致命错误 LNK1104:无法打开文件"gtest.lib",但存在调试"gtestd.lib"
- 有没有适用于Windows.lib文件的GNU二进制文件描述符(BFD)
- 链接 .lib 并在 Windows 中使用 .dll 在 C++ 在 Eclipse 中
- cmake cuda在Windows上单独的编译静态LIB链接错误,但在Ubuntu上没有
- 将Qt Creator Projet移植到Windows时的z.lib问题
- opengl32.lib如何在Windows(仅1.1版本)上工作?它是否真正实现了OpenGL函数
- tesseract.lib (version 4 ) for windows 10 (x64)
- 如何在Windows Cmake中设置DLIB作为静态安装的共享LIB
- 如何构建使用Visual Studio 2017的Windows XP的Winsock2(WS2_32.LIB)应用程序
- 当 Windows SDK 版本设置为 15063.13 时"LNK1104 Cannot open file 'kernel32.lib' "
- GHCi 无法在 Windows 上加载.dll lib(C++ lib)
- CMAKE链接在Windows上共享库(LIB),但找不到DLL
- 可以在linux程序中使用msvc在windows上构建的boost lib吗
- C++运行时组件(通用 Windows)项目生成错误"LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'"
- Visual Studio 2012 alongside 2010 - kernel32.lib, windows.h
- 如何使Ws2_32.lib与针对Windows 8.1的VS 2013项目协同工作
- windows sdk 7.1 64位构建的CloseHandle显然不在kernel32.lib中
- Qt在windows中共享库,不生成.lib文件
- 令人费解的Boost.Python 1.54(调试版本)对Windows上的Python27.lib的依赖关系