完美解决:VS2015与VS2010同时安装后,头文件无法识别的问题

前言:
-------
本来我用VS2015好好地,后来由于某种原因安装了VS2010。结果用VS2010新建了个工程后出现如下错误:

(把这个工程转换到VS2015打开没有任何错误。)
我在网上千辛万苦地寻找和摸索后终于找到了解决方案。

出错的原因:
-------

两个版本的用户属性表(Microsoft.Cpp.Win32.user.props)冲突导致。
具体原因可以参考一下这个博客:http://blog.csdn.net/tianrolin/article/details/29208847(**先安装低版本、后安装高版本出错的网友们可以按照这个做试试。**

解决方案:(先安装高版本、后安装低版本出错的可以按照这个试试)
-------
 1. 使用记事本打开:C:\Users\<用户名>\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props。
 2. 找到VS2010的默认用户属性表,往上面补充。(也就是说,原来的属性表没有的,从这个默认属性表上粘贴过去)
 3. 重启VS2010。

VS2010的默认用户属性表:
-------

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
  3.   <ImportGroup Label="PropertySheets" />  
  4.   <PropertyGroup>  
  5.     <ExecutablePath>$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)\bin;$(MSBuildToolsPath32);$(VSInstallDir);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);</ExecutablePath>  
  6.     <IncludePath>$(IncludePath)</IncludePath>  
  7.     <ReferencePath>$(VCInstallDir)atlmfc\lib;$(VCInstallDir)lib</ReferencePath>  
  8.     <LibraryPath>$(LibraryPath)</LibraryPath>  
  9.     <SourcePath>$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\mfcm;$(VCInstallDir)atlmfc\src\atl;$(VCInstallDir)crt\src;</SourcePath>  
  10.     <ExcludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(MSBuildToolsPath32);$(VCInstallDir)atlmfc\lib;$(VCInstallDir)lib;</ExcludePath>  
  11.   </PropertyGroup>  
  12. </Project>  

安装了Visual Studio 2010和Visual Studio 2019之后,如果你遇到了头文件无法识别问题,可能是因为两个版本的Visual Studio使用了不同的编译器和库版本,导致它们的头文件路径可能出现了冲突。为了解决这个问题,你可以尝试以下几种方法: 1. **使用不同配置的项目**:确保在创建项目时选择了正确的Visual Studio版本。在Visual Studio的创建新项目对话框中,可以通过选择“创建新解决方案”下的“下一步”来指定使用的Visual Studio版本。 2. **修改环境变量**:检查环境变量设置,确保没有因为安装不同版本的Visual Studio而导致的路径冲突。特别是`Include`路径,可能需要手动检查并调整,以确保它们指向正确的头文件目录。 3. **使用条件编译**:在源代码中使用预处理器指令来区分不同的编译环境。例如,你可以为VS2010定义一个特定的宏,然后在包含头文件使用这个宏。 ```cpp #ifdef VS2010 #include "path\to\vs2010\header.h" #else #include "path\to\vs2019\header.h" #endif ``` 4. **指定头文件路径**:在项目的属性设置中明确指定头文件的搜索路径,这样编译器就会按照指定的路径来查找头文件,而不是使用默认路径。 5. **使用不同工作负载安装**:在安装Visual Studio时,确保选择了与你开发工作负载相匹配的工作负载。这样可以避免安装不必要的组件,减少冲突的可能性。 6. **清理旧版本组件**:如果你不再需要VS2010,可以考虑卸载它。在卸载之前,确保没有项目依赖于该版本。 7. **调整Visual Studio版本设置**:在项目属性中,你可以设置项目的目标框架版本,确保它们与你的Visual Studio版本相匹配。 如果你在尝试上述方法后仍然遇到问题,可能需要检查Visual Studio的安装日志,查找可能的安装错误或缺失的组件,并考虑重装Visual Studio来解决冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值