exch4nge
2016-10-31 09:40:42 +08:00
对 VS 还算熟,能来答一下。 LS 说的好像不大对的感觉……
继承父级的值的意思是使用其它继承的值,本项目不进行特殊配置。如果你记事本打开 vcxproj 文件,就知道具体区别了。
选择继承父级的值时,对应配置一般不会在 vcxproj 文件中出现, build 时,会自动找到默认配置+props 文件的配置来计算最终使用的属性值。
比如楼主说的附加包含目录属性对应的是 AdditionalIncludeDirectories ,如果选择默认(继承父级的值)的话,在 vcxproj 文件中不会有这个内容。如果 LZ 在里面写成了 C:\Libs 时,会变成
<AdditionalIncludeDirectories>C:\Libs</AdditionalIncludeDirectories>
如果 LZ 又想继承父级的值又想添加这个工程特有的,可以写成
<AdditionalIncludeDirectories>C:\Libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
用分号分割,%(属性名) 指的就是父级的值;(其实这里会展开成父级的值,类似环境变量设置时用的 set PATH=%PATH%;xxxxx 的原理)
============================分割线===============================
上面有个 props 文件没有说,在这里一起讲。
打开工程的 Property Manager ( View -> Other Windows -> Property Manager ),每个工程可以展开看一下,会发现一般 C++工程有几个默认的 props ,这里就存着上面所说的 VS C++工程的默认 build 用的配置。
如果你需要多个工程应用同一样的 build 配置时,(比如多个工程都需要加某个第三方库的目录)可以自己创建一个 props 文件,具体用法可以找一些教程,这里不多说了。