vs2010中 包含目录 和 常规-》附加包含目录 的区别

转载:http://blog.youkuaiyun.com/cppyin/article/details/6225596


右键一个Project,可以发现有两个地方设置Include的相关目录:

1. VC++ Directories -> Include Directories   适用于当前项目。
2. C/C++ -> General -> Additional Include Directories。 适用于所有项目,修改了系统include变量。

 

不知道具体有什么区别,后在MSDN上得到答案:

“VC++ Directories -> Include Directories” : Directory settings displayed in the window are the directories that Visual Studio will search for include files referred to in your source code files. Corresponds to environment variable INCLUDE. More information : http://msdn.microsoft.com/en-us/library/t9az1d21(v=vs.80).aspx

 

“C/C++ -> General -> Additional Include Directories”: The directory to be added to the list of directories searched for include files. More information : http://msdn.microsoft.com/en-us/library/73f9s62w(v=vs.80).aspx

 

下面那个链接讲的比较清楚了:

The compiler searches for directories in the following order:

1.Directories containing the source file.

2.Directories specified with the /I option, in the order that CL encounters them.

3.Directories specified in the INCLUDE environment variable.

 

order2中的/I是由C/C++ -> General -> Additional Include Directories设置的。

order3中的INCLUDE是由VC++ Directories -> Include Directories设置的。


<think>我们正在处理一个关于Visual Studio配置的问题,特别是针对不同VC++环境的附加包含目录设置。根据用户的问题提供的引用资料,我们需要解释如何配置这些设置,并说明不同配置选项的区别。 根据引用资料: - VC++目录(包括包含目录目录)是环境变量级别的设置,影响整个VS环境(但在VS2010之后,它只影响单个工程)[^2]。 - C/C++ 附加包含目录 链接器的附加目录 是项目级别的设置,作为命令行参数传递给编译器链接器[^2][^3]。 - 建议使用C/C++链接器下的设置(即附加包含目录附加目录),而不是VC++目录,因为前者的搜索顺序更靠前,且不需要环境变量[^4]。 用户希望为不同的VC++环境(如Debug/Release、x86/x64)配置附加包含目录。在Visual Studio中,可以为每个配置(Configuration)平台(Platform)单独设置属性。 步骤: 1. 打开项目属性:右键点击项目 -> 属性。 2. 在属性页顶部,选择配置(如Debug、Release)平台(如Win32、x64)。 3. 在“配置属性” -> “C/C++” -> “常规-> “附加包含目录”中,添加头文件目录。 4. 同样,在“链接器” -> “常规-> “附加目录”中添加库文件目录,在“链接器” -> “输入” -> “附加依赖项”中添加具体的库文件名。 注意:附加包含目录的设置是区分配置平台的,所以可以为不同的环境设置不同的路径。 例如,为Debug配置设置一个包含目录,为Release配置设置另一个包含目录: 1. 在配置下拉框中选择“Debug”。 2. 在附加包含目录中添加Debug版本的头文件路径。 3. 再选择“Release”配置,添加Release版本的头文件路径。 同样,对于平台(x86x64)也可以分别设置。 关于auto-linking(自动链接): - 如果第三方库支持auto-linking(如使用#pragma comment(lib, "library.lib")),则不需要在附加依赖项中手动添加库文件,编译器会自动链接[^3]。 - 否则,需要在“附加依赖项”中手动添加库文件名。 总结: - 使用项目属性中的C/C++附加包含目录链接器的附加目录,而不是VC++目录- 通过选择不同的配置平台,可以为每个环境设置不同的路径。 相关问题: 1. 如何为不同的Visual Studio配置(Debug/Release)设置不同的库目录? 2. 在Visual Studio中配置包含目录时,VC++目录C/C++附加包含目录有什么区别? 3. 如何让Visual Studio项目自动链接不同配置下的库文件?</think>### Visual Studio 配置不同 VC++ 环境的附加包含目录 在 Visual Studio 中为不同 VC++ 环境(如 Debug/Release、x86/x64)配置附加包含目录,需通过**项目属性页**实现。以下是具体步骤: 1. **打开属性页** 右键点击项目 → 选择“属性” → 在顶部“配置”下拉菜单中切换目标环境(如 `Debug|x64`)。 2. **配置附加包含目录** - 导航到:`配置属性 → C/C++ → 常规附加包含目录` - 点击编辑按钮(📝),添加头文件路径(每行一个路径,或使用分号分隔) - **关键点**:此设置仅对当前选定配置生效[^2][^4] 3. **路径宏的使用(推荐)** 使用 VS 内置宏实现环境差异化配置,例如: ```makefile $(SolutionDir)include\$(Platform)\$(ConfigurationName) ``` 此路径会自动解析为:`项目根目录\include\x64\Debug`(当前为 x64 Debug 环境)[^3] 4. **与 VC++ 目录区别** - `VC++ 目录`:全局设置,影响所有项目(VS2010 后仅影响当前项目)[^2][^5] - `附加包含目录`:项目级设置,优先级更高且可区分环境[^3][^4] ```mermaid graph LR A[编译流程] --> B(附加包含目录) A --> C(VC++包含目录) B --> D[编译器命令行参数] C --> E[环境变量] D --> F[优先使用] ``` 5. **多环境配置示例** | 环境 | 附加包含目录路径 | |---------------|-------------------------------| | Debug x86 | `libs\x86\debug\include` | | Release x86 | `libs\x86\release\include` | | Debug x64 | `libs\x64\debug\include` | | Release x64 | `libs\x64\release\include` | > ⚠️ **重要建议**:始终优先使用 `附加包含目录` 而非 `VC++ 目录`,因其具有环境隔离性且不会污染全局设置[^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值