关于 visual studio 设置 头文件\库文件 路径的问题

visual studio 主要从这几地方加载项目属性(包括x86 or x64, Debug or Release, 头文件路径,库文件路径等等):

这几个地方的项目属性已分层, 每层继承前一层的值,但是继承的值可以通过设置属性显式重写, 这是基本的继承树:

  1. 来自 MSBuild CPP 工具集的默认设置(..\Program
    Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props,由 .vcxproj 文件导入)
  2. 属性表
  3. .vcxproj 文件(可能重写默认设置和属性页设置。)
  4. 项元数据

最主要的两个地方是 属性表.vcxproj 文件这两部分。

属性表:

属性表一般用于比较大型的项目,例如一个solution拥有很多个project,并且这些project拥有一些同样的配置(头文件路径,库路径等等)。
在菜单栏中选择“视图”、“属性管理器”,然后就可以看到各个项目在不同配置下的的属性表(根据 Debug\Release x86\x64 一般有四种配置),如图:
这里写图片描述

图中显示的都是默认的属性表,一般我们需要创建自己的属性表,这是为了方便管理和重用这些配置。右键->添加新的项目属性表 即可创建自己的属性表,会生成 名字.props的文件,重用该文件即可重用对应的配置。
其中 Microsoft.Cpp.Win32.user 这个属性表是对本地当前用户生效的,即修改该文件会对该用户的所有的项目产生影响,一般我们都不会使用它,可以删除,也可以不修改它的内容。其它几个视项目需要一般也不修改。

.vcxproj 文件

如果项目不是很复杂,直接在 .vcxproj 文件中保存配置是比较方便的。
Solution Explorer 中,右键点击 Project -> Properties 也可以修改项目配置属性,这里修改的对应的属性是保存在 .vcxproj 文件中的。

如果用户既在 属性表 中设置了该属性,又在 .vcxproj 文件中设置了该属性,那么由于继承关系,在 .vcxproj 中设置的属性会重写默认设置和属性页设置。

另外一个需要注意的就是 “Include Directories” and “Additional Include Directories” 的区别,见链接:
https://stackoverflow.com/questions/6883276/what-is-the-difference-between-include-directories-and-additional-include-dir

其他参考链接:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/4a63bf74-23d1-4f85-aee9-c83cc0f99dad/microsoftcppwin32user-property-sheet-file-shared-by-both-vs2010-and-vs2012?forum=msbuild

https://stackoverflow.com/questions/9248526/how-do-i-restore-a-property-sheet-to-its-default-value

https://docs.microsoft.com/zh-cn/cpp/ide/working-with-project-properties

相关文章
相关标签/搜索