VS2010中VC++目录和C/C++之间的区别。VC++ Directories和C/C++的区别。
首先,这是个历史遗留问题,说起来比较复杂。其次,这个问题在微软的MSDN博客上已经专门被说起过了,英文好的请直接移步到原文:《VC++ Directories》。另外,stack overflow上面也有人问到过,但是首选回答的人回答是错的,因为他没看 《VC++ Directories》,主要看后面的这段:
VC++ Directories: Include Directories
- this value is inherited from the
INCLUDEWindows environment variable which is defined outside of Visual Studio
- environment variables can be: global to the computer or have user level scope
- The
INCLUDEandLIBenvironment variables are created when the Microsoft Windows SDK is installed with Visual Studio.C/C++: Additional Include Directories
- is a project level setting... you will have to define this value for every project in your solution
- this value can be persisted to source control
好了,如果你英文不好,那么还是听我的这个二手货吧。
VC++ Directories本来是对应于SDK的,他的变量是一个Windows环境变量,就和你在操作系统的控制面板里面添加的环境变量是一样的,比如这也有PATH,这个PATH和你在控制面板里面的PATH是一样的。但是,毕竟这个是用于搞开发的一些环境变量,所以呢,就把它搞到继承开发环境里面来设置了,这样你就可以不用在操作系统的控制面板里设置他们,而且这些环境只在VS中有效。
而C/C++中的设置呢,它不是设置环境变量,它是设置命令行参数的,所以你可以很清晰的看到,它还有一个Command Line设置项,这个项分两块,上面是根据你前面填写项的指生成的,比如你的Additional Include Directories设置,就会对应到 /I [path]上面来,下面有个叫Adittion Option的框框,是供你填一些上面没有的或者其他需要补充的命令行参数的。既然是命令行参数,那肯定是针对当前这个工程的了。

本来一切已经很明确了:“VC++目录”影响全局,只要是电脑上的这个VS创建的工程,都会被这个设置影像到; 而C/C++只影响到单个的工程,一个工程一个C/C++。
但是怪就怪在,微软觉得这种全局的方式太粗暴了,所以在VS2010之后,“VC++目录”变得也只影响单个工程了,而且还只能在工程上右键“属性”才能大概,以表示它是属于这个工程的。在VS2008中,这个设置还可以从Tools菜单中打开。所以,在VS2010之后,这二者就变成没区别了。
但是真的没区别了吗?呵呵,区别大了(奔溃。。。)
前面已经说过了,VC++ Directories是一个Windows环境变量,C/C++是命令行参数,这是本质区别;但是相同的项,也就是VC++ Directories中的include directories 对应到C/C++中的addition include directories 是一样的效果,也就是说效果一样。同样是命令行参数的还有Link设置,Link设置中的 addition library directories对应到VC++ Directories 中的library directories,也就是说,效果是相同的。
总之,很坑爹。。。
VS2010中VC++目录和C/C++之间的区别。VC++ Directories和C/C++的区别。的更多相关文章
- VS2010中“工具>选项中的VC++目录编辑功能已被否决”解决方法
转自:http://blog.csdn.net/chaijunkun/article/details/6658923 这是VS2010的改变,不能够在“工具-选项”中看到“VC++目录”了. 但是呢, ...
- Opencv不用每次创建项目配置vs2010 vc++目录 库目录等项
可以设置成编译器的环境配置,VS2010相对其他版本虽然去掉了编译器配置 但可以通过属性管理器配置编译器环境. 设置对应的vc++目录 链接器就可以了,这样就是对整个编译器配置了 下次就不用再配了.
- [整理]VS2010中如何添加“依赖","库目录","包含目录"
VS2010中如何添加“依赖","库目录","包含目录" 1. 添加编译所需要(依赖)的 lib 文件[解决方案资源管理器]“项目->属性-&g ...
- vs2010中使用luabind
第一部分:在vs2010中生成luabind静态库和动态库 一.前期准备 1.安装boost 下载boost并解压到 D:\mylua\boost_1_56_0,进入 D:\mylua\boost_1 ...
- vs2010中配置OpenGL以及针对64位系统所遇问题的解决办法
一.下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作 第一步,选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C+ ...
- VS2010中项目配置引入GDAL
在上一篇文章中,小编介绍了使用VS2010编译GDAL的方法,但是上文中仅仅完成了编译的工作,但是在具体是使用过程中,需要先对VS2010的项目进行配置,引入GDAL的库.配置GDAL的的过程如下: ...
- 如何判断平台工具集去做条件编译(VC++目录、预处理器定义、$(PlatformToolsetVersion))
作者:zyl910 从VS2010开始,提供了一个平台工作集(Platform ToolSet)选项用于配制vc编译版本.到了VS2012,更是因为默认平台工具集不支持WindowsXP,导致经常需要 ...
- VS2010中如何查看DLL的导出接口
看<VC++动态链接库(DLL)编程深入浅出>时,里面提到使用Visual C++的Depends工具可以查看动态链接库中的导出接口.对于VC6.0,VC所带的Depends软件,在VC6 ...
- vs2010中臃肿的ipch和sdf文件
使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量, ...
随机推荐
- SQL SERVER2008 R2修改Server Collation--文檔沒細看先存下來.
HOW TO: RESTORE THE MASTER DATABASE IN SQL SERVER 2012 by Thomas LaRock | Jan 14, 2014 | MSSQL, SQL ...
- mvc+EF - 有用文章
Mvc全局过滤器与Action排除:http://blog.csdn.net/shuaihj/article/details/53020428 MVC 自定义AuthorizeAttribute实现权 ...
- 以太坊系列之十三: evm指令集
evm指令集手册 Opcodes 结果列为"-"表示没有运算结果(不会在栈上产生值),为"*"是特殊情况,其他都表示运算产生唯一值,并放在栈顶. mem[a.. ...
- C# 继承(4)
接上章: class NameList { public NameList() => Console.WriteLine("这个是NameList的构造函数"); publi ...
- 【bzoj4806~bzoj4809】 象棋四连发 DP-高精度-匈牙利算法-dfs
都是经典题了吧..我好无聊.. 4806 4806-1801是双倍经验..DP方程看代码吧.. /* http://www.cnblogs.com/karl07/ */ #include <cs ...
- Thinkphp5.0 路由
路由定义: 有两种方式: (1).动态注册: eg: Route::rule('hello','index/index/hello','GET'); (2)配置式: eg: return [ 'pat ...
- 基于Solr的多表join查询加速方法
前言 DT时代对平台或商家来说最有价值的就是数据了,在大数据时代数据呈现出数据量大,数据的维度多的特点,用户会使用多维度随意组合条件快速召回数据.数据处理业务场景需要实时性,需要能够快速精准的获得到需 ...
- 创建Oracle synonym 详解
--创建使用同义词 --同义词就是给表.视图等对象取得别名,用于简化对其的访问 --分为2种: --私有同义词:用户自己创建自己使用的 --公共同义词:dba创建,给其它用户使用的 --为dept_s ...
- js 随机数组
生成指定num-start 个数组长度,值为start---num 的随机数组,不包括num这个值 function rand_arr(num,start) { // 验证值 if(!argument ...
- Python第一天学习成果
1.变成可执行程序,在开头需加#!/usr/bin/env python找解释器 2.Python不支持常量,但建议用全大写就表明是常量 3.Unicode:2字节 ASCII:1字节 UTF-8(可 ...