大家都是怎么学习 VS 属性页中那些繁杂的配置的,对应的意义是什么。 比如我现遇到个问题,在项目“附加包含目录”中,有个叫“继承的值”,这个东西是怎么来的,我知道是继承父级,可是父级要怎么设置呢?
1
forestyuan 2016-10-30 19:25:36 +08:00
版本号?项目是什么类型的?
我用 Visual Studio 2015 ,看了几个项目,都没有这个选项。我记得以前版本的 VS 里面好像有过。 |
2
gtshine OP @forestyuan 我也是 2015 ,就是右键项目 -> 属性 -> C/C++ -> 常规 -> 附加包含目录 -> 编辑
里面有个继承的值 |
3
ZyZyZzz 2016-10-30 20:09:35 +08:00 2
VS 界面语言切换成英文,然后 google , stackoverflow , MSDN 之
然后 VS 的用法尽在掌握 |
4
zhuangzhuang1988 2016-10-30 21:07:30 +08:00
就和类继承一样,好多预定义设置
|
5
gtshine OP @zhuangzhuang1988 抱歉,还是不太理解,要怎么做呢?
|
6
forestyuan 2016-10-30 23:36:16 +08:00
官方说法是从 parent 或 project defaults 继承
其实很多时候,直接填目录进去就行了 |
7
alqaz 2016-10-31 00:09:21 +08:00
你试着设置不同值,然后看下 属性=>c/c++=>命令行 右边的值有什么不同。
|
8
acros 2016-10-31 00:24:56 +08:00
你说的是项目( Project )继承,是对应解决方案( Solution )里面的依赖关系。
比如你现在有个一个 Solution ( VS 工程都是一个 Solution ),里面有两个项目,一个 A 是变成 exe 的,一个 B 是 dll 被引用的, A 就是继承 B 的。继承关系在 Solution 的 Property -> Common Property -> Project Dependencies 设置。 (我的版本是英文的,中文可能说得不太准。) |
9
acros 2016-10-31 00:26:14 +08:00
估计楼主现在开的项目是单 Project 的,没看出区别来····
|
10
exch4nge 2016-10-31 09:40:42 +08:00 1
对 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 文件,具体用法可以找一些教程,这里不多说了。 |
11
exch4nge 2016-10-31 09:47:10 +08:00
忘了说重点了。 Property Manager 里面看到的 props 文件是有顺序的,下面一个会成为当前的配置的父级,当然如果当前配置里没有改动过,默认就会继承父级配置的值。
|