为Visual Studio添加默认INCLUDE包含路径一劳永逸的方法(更新)
2014-03-07 10:57
239 查看
你是否曾经也有过这样的问题:
用VS的时候,有时会用到一些非自带的库,例如WTL、Boost、DX等,每次需要用到时都要在项目属性里添加相应的include目录,久而久之觉得有点麻烦。是否有解决办法呢?
于是我便在网上找相关资料,在StackOverflow网站上找到一篇相关的文章(原文链接),文章里提到的一个办法是修改
C:\Users\<user>\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props 这个文件,在这个文件里添加需要include的目录,之前我一直是用这个方法,也没啥问题。
当我安装了VS2012之后,问题变出现了。在VS2012上新建一个MFC的工程,什么也没动,居然编译不通过,提示找不到某些文件,我便联想到了是不是之前修改了影响到了,于是我果断把修改的那个文件恢复成默认的内容,再试,结果就没问题了。。。可是这样就得每次都手动添加WTL的目录了。。我便开始翻VS的一些配置文件。
解决方案一:
修改 "VS安装目录中的\VC\VCWizards\default.vcxproj" 这个文件,(这其实就是个xml文件)
如我的目录是"D:\Program Files\Microsoft Visual Studio 11.0\VC\VCWizards\default.vcxproj"
如果我要添加的目录是"D:\Program Files\Microsoft Visual Studio 11.0\VC\WTL\include";
用文本编辑器打开这个文件,定位到文件末尾,在</Project>之前插入如下内容
$(VCInstallDir)\WTL\include;就是需要添加的目录了。$(VCInstallDir)是VS里的环境变量(在我的电脑上就是"D:\Program
Files\Microsoft Visual Studio 11.0\VC"),表示VC的安装目录。$(IncludePath)是表示原有的路径。实际上最终得到的路径如图里四个
![](http://pic002.cnblogs.com/images/2012/325688/2012071314305370.png)
如果需要添加lib文件的路径的话。格式就是<LibraryPath></LibraryPath>
添加完后保存即可,新建一个项目后,在项目属性里可以看到目录已经加进去了。大功告成,VS2010也是用同样的方法,只不过目录不同了。
解决方案二:
这个方法是结合了开头提到的StackOverflow网站上的修改方法。
依然是修改 "VS安装目录中的\VC\VCWizards\default.vcxproj" 这个文件,只不过这里修改的地方不同,用文本编辑器打开该文件,查找"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"这段内容,
其实这里就是指向了我电脑上的那个文件C:\Users\HwangBae\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props;这里我就想到了,为VS2010和VS2012指定不同的文件,
将"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"全部替换成"$(UserRootDir)\VC11\Microsoft.Cpp.$(Platform).user.props"。
然后在C:\Users\HwangBae\AppData\Local\Microsoft\MSBuild\v4.0这个目录下创建了两个文件夹,分别命名为VC10和VC11,然后将Microsoft.Cpp.Win32.user.props复制到这两个文件夹,然后除了这两个文件夹外的文件均可删除,其他的文件VS会在那两个文件夹里自动重新创建的;
然后编辑Microsoft.Cpp.Win32.user.props这个文件,在<Project>节点下按照方法一的步骤插入同样的代码。在VS2010的目录下也做同样的替换。到此就完事了。测试无任何问题。
总结一下这两种方法的区别,方法一修改后,只对新建的项目有效,在没修改之前创建的项目是无效的,而方法对于之前创建的项目也有效。哪种方法比较适合大家自己取舍。
转载请标明出处,原文地址:
http://www.cnblogs.com/hwangbae/archive/2012/06/24/2560463.html
如果觉得本文对您有帮助,请支持一下,您的支持是我写作最大的动力,谢谢。
用VS的时候,有时会用到一些非自带的库,例如WTL、Boost、DX等,每次需要用到时都要在项目属性里添加相应的include目录,久而久之觉得有点麻烦。是否有解决办法呢?
于是我便在网上找相关资料,在StackOverflow网站上找到一篇相关的文章(原文链接),文章里提到的一个办法是修改
C:\Users\<user>\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props 这个文件,在这个文件里添加需要include的目录,之前我一直是用这个方法,也没啥问题。
当我安装了VS2012之后,问题变出现了。在VS2012上新建一个MFC的工程,什么也没动,居然编译不通过,提示找不到某些文件,我便联想到了是不是之前修改了影响到了,于是我果断把修改的那个文件恢复成默认的内容,再试,结果就没问题了。。。可是这样就得每次都手动添加WTL的目录了。。我便开始翻VS的一些配置文件。
解决方案一:
修改 "VS安装目录中的\VC\VCWizards\default.vcxproj" 这个文件,(这其实就是个xml文件)
如我的目录是"D:\Program Files\Microsoft Visual Studio 11.0\VC\VCWizards\default.vcxproj"
如果我要添加的目录是"D:\Program Files\Microsoft Visual Studio 11.0\VC\WTL\include";
用文本编辑器打开这个文件,定位到文件末尾,在</Project>之前插入如下内容
<PropertyGroup> <IncludePath>$(VCInstallDir)\WTL\include;$(IncludePath)</IncludePath> </PropertyGroup>
$(VCInstallDir)\WTL\include;就是需要添加的目录了。$(VCInstallDir)是VS里的环境变量(在我的电脑上就是"D:\Program
Files\Microsoft Visual Studio 11.0\VC"),表示VC的安装目录。$(IncludePath)是表示原有的路径。实际上最终得到的路径如图里四个
![](http://pic002.cnblogs.com/images/2012/325688/2012071314305370.png)
如果需要添加lib文件的路径的话。格式就是<LibraryPath></LibraryPath>
添加完后保存即可,新建一个项目后,在项目属性里可以看到目录已经加进去了。大功告成,VS2010也是用同样的方法,只不过目录不同了。
解决方案二:
这个方法是结合了开头提到的StackOverflow网站上的修改方法。
依然是修改 "VS安装目录中的\VC\VCWizards\default.vcxproj" 这个文件,只不过这里修改的地方不同,用文本编辑器打开该文件,查找"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"这段内容,
其实这里就是指向了我电脑上的那个文件C:\Users\HwangBae\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props;这里我就想到了,为VS2010和VS2012指定不同的文件,
将"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"全部替换成"$(UserRootDir)\VC11\Microsoft.Cpp.$(Platform).user.props"。
然后在C:\Users\HwangBae\AppData\Local\Microsoft\MSBuild\v4.0这个目录下创建了两个文件夹,分别命名为VC10和VC11,然后将Microsoft.Cpp.Win32.user.props复制到这两个文件夹,然后除了这两个文件夹外的文件均可删除,其他的文件VS会在那两个文件夹里自动重新创建的;
然后编辑Microsoft.Cpp.Win32.user.props这个文件,在<Project>节点下按照方法一的步骤插入同样的代码。在VS2010的目录下也做同样的替换。到此就完事了。测试无任何问题。
总结一下这两种方法的区别,方法一修改后,只对新建的项目有效,在没修改之前创建的项目是无效的,而方法对于之前创建的项目也有效。哪种方法比较适合大家自己取舍。
转载请标明出处,原文地址:
http://www.cnblogs.com/hwangbae/archive/2012/06/24/2560463.html
如果觉得本文对您有帮助,请支持一下,您的支持是我写作最大的动力,谢谢。
相关文章推荐
- Ubuntu邮件客户端Thunderbird常用的快捷键
- RMQ sparse-table
- 修改一行和修改全表的TX锁
- 页框管理
- android view构造函数研究
- 修改一行和修改全表的TX锁
- win2003 iis 批量建站
- JS中如何判断JSON数据是否存在某字段
- Linus Trovalds谈Linux内核开发管理风格
- Linus Trovalds谈Linux内核开发管理风格
- Verilog同步复位,异步复位
- 虚函数
- Android Support v4、v7、v13 介绍
- 远程桌面不能拷贝文件的解决方法
- android 焦点问题
- 2014.3.6-C语言学习小结
- acegi security实践教程—logoutFilter应用以及调试
- Effective Objective-C 第二章
- 树莓派上运行C#程序
- VS2010命令行下查看虚函数表和类内存布局