原文地址

你是否曾经也有过这样的问题:

用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)是表示原有的路径。实际上最终得到的路径有四个。

如果需要添加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的目录下也做同样的替换。到此就完事了。测试无任何问题。

总结一下这两种方法的区别,方法一修改后,只对新建的项目有效,在没修改之前创建的项目是无效的,而方法对于之前创建的项目也有效。哪种方法比较适合大家自己取舍。

[转载] 为Visual Studio添加默认INCLUDE包含路径的方法的更多相关文章

  1. Visual Studio - 为默认模板添加版权信息

    转自:http://www.cnblogs.com/easyzikai/archive/2012/10/14/2723328.html 和 http://www.cnblogs.com/eagle19 ...

  2. VS2010 项目属性的默认包含路径设置方法

    VS2010 项目属性的默认包含路径设置方法 分类: c++小技巧2014-01-10 10:16 1358人阅读 评论(0) 收藏 举报 c++ 有两种方法可以设置vs2010的默认包含路径 方法一 ...

  3. Visual Studio 添加图标和版本

    在Visual Studio中,如果你创建的是纯C语言的工程,那么给可执行程序添加图标就没有便捷的入口. 但也只是入口不好找了,添加步骤还是比较简单的,以下为具体操作方法:     1. 右键点击C工 ...

  4. visual studio 添加库文件

    我在visual studio中使用OpenGL时需要添加额外的库 一 首先下载库文件,里面将会有一些.h文件和.lib文件,打开visual studio安装目录下打开: D:\program\VS ...

  5. 修改Visual Studio的默认模板

    如果我在Visual Studio创建的项目中每次新建一个文件,自动生成注释或者是结构的话,那么就需要改下默认的模板了.下面以vs2013为例 我们添加的文件有很多种,这里就举例3种,CSharp类文 ...

  6. Visual Studio 设置 Inherited include Directories

    在用Visual Studio进行开发的时候,避免不了要使用一些常用的第三方提供的库.如果是一次两次设置还能让人忍受,但是如果要写很多项目的话,设置这些库真的很让人头疼.不过Visual Studio ...

  7. Visual Studio添加dll程序集引用操作步骤

    Visual Studio 中添加引用的操作: 在“解决方案资源管理器”中,先右击项目图标,在弹出菜单选择“添加引用...” 然后在弹出的窗口中选择所要添加的选项,点击确定就可以了. 原文:http: ...

  8. 【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发

    原文:Visual Studio 2015 for Linux更好地支持Linux下的开发 英文原文:Targeting Linux Made Easier in Visual Studio 2015 ...

  9. [Visual Studio] 重置默认设置 还原默认设置

    恢复默认设置的2种方法 如果VS出现问题或设置变乱,可以通过恢复默认设置使之回到安装成功时的状态,从而解决出现的问题.VS恢复默认设置的方法有2种,分别是:通过“导入和导出设置”实现和通过命令实现. ...

随机推荐

  1. php和mysql两种不同方式的分割字符串和类型转换

    一.sql语句1.分割字符串方法:substring_index(字符串,'分隔符',正数从左数起几位/负数从右数起几位); 例如:subtring_index('aa_bb_cc_dd','_',1 ...

  2. Merkle tree在区块链中的应用

    上篇博文我们转载了一篇<Merkle Tree(默克尔树)算法解析>,那么大家是不是会有疑问,学习这个算法之后,我们改怎么去应用,区块链中又是如何应用的?今天这篇博客就以Merkle tr ...

  3. CVE-2010-3974 Microsoft Windows多个平台Fax Cover Page Editor内存破坏漏洞

    Microsoft Windows Fax Cover Pages用于个性化传真以及呈现更正式外观的传真传输.         Microsoft Windows XP SP2和SP3,Windows ...

  4. SQL技巧两则:选择一个表的字段插入另一个表,根据其它表的字段更新本表内容

    最近,在作django数据表迁移时用到的. 因为在django中,我把本来一个字符型字段,更改成了外键, 于是,哦喝~~~字符型字段相当于被删除了, 为了能导入这些字段的外键信息,于是出此下策. 其实 ...

  5. abp zero 4.3 发布

    Demo URL: http://abpzerodemo.demo.aspnetzero.com Username: systemPassword: 123456 需要源码,请加QQ:3833-255 ...

  6. 安装loadrunner11,卸载360浏览器后提示“无效的应用程序路径!请检查应用程序是否存在!”

    我安装的loadrunner是11版本的,安装之前我的电脑上有安装了很多的浏览器,结果一开始录制脚本的时候,页面直接跳转到360浏览器上面了,但是显示正在录制的脚本为0个,于是就把360给卸载了,进行 ...

  7. nginx、php-fpm、swoole HTTP/TCP压测对比

    本次测试是在win7下docker环境中进行压测,共创建一个nginx容器.一个php-fpm容器和一个swoole容器,客户端请求nginx服务器,nginx接收用户访问请求并转发给php-fpm, ...

  8. Mendeley文献管理软件使用介绍

    <!DOCTYPE html> New Document /* GitHub stylesheet for MarkdownPad (http://markdownpad.com) / / ...

  9. CSUOJ 1560 图书管理员的表白方式

    Description 小V是中南大学图书馆的图书管理员,每天要整理很多同学们还回来的书.久而久之,他认识了很多常来图书馆的同学,比如说小L.简而言之吧,就是小V喜欢上了小L,并且想在下一次她来还书的 ...

  10. Linux基础命令—网卡

    #1.实时查看网卡流量 #sar -n DEV 1 5 [每间隔1秒刷新一次,共5次] sar -n DEV 1 5 IFACE 表示设备名称 rxpck/s 每秒接收的包的数量 txpck/s 每秒 ...