为VisualStudio添加默认INCLUDE包含路径一劳永逸的方法(更新)_百度文...
为VisualStudio添加默认INCLUDE包含路径⼀劳永逸的⽅法(更
新)
你是否曾经也有过这样的问题:
⽤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的⽬录下也做同样的替换。到此就完事了。测试⽆任何问题。
总结⼀下这两种⽅法的区别,⽅法⼀修改后,只对新建的项⽬有效,在没修改之前创建的项⽬是⽆效的,⽽⽅法对于之前创建的项⽬也有效。哪种⽅法⽐较适合⼤家⾃⼰取舍。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。