Visual Studio 2019如何自动引入解决方案资源管理器中的所有头文件
为什么VS无法自动识别解决方案里的跨目录头文件
Visual Studio 的解决方案资源管理器仅做项目文件的逻辑层级展示,和C/C编译阶段的头文件搜索路径是完全独立的两套机制。C/C预处理器默认只会搜索「当前编译文件所在目录」、「项目配置的标准库目录」和「手动配置的附加包含目录」,不会主动扫描解决方案中所有头文件的所在路径,因此跨目录的头文件无法直接被识别。
最简解决方案:使用递归通配符批量添加所有子目录
不需要逐个手动添加目录,直接在VS项目配置里用通配符即可实现全目录自动扫描:
- 右键项目→选择「属性」,打开项目配置页
- 依次定位到「配置属性」→「C/C++」→「常规」→「附加包含目录」
- 填入
$(ProjectDir)**即可递归扫描项目根目录下的所有子目录作为头文件搜索路径,如果你只想扫描源代码所在的指定目录,改成对应路径即可,比如$(ProjectDir)src/**就只会扫src文件夹下的所有子目录。
注意事项
- 如果项目存在重名头文件,递归搜索可能会引发引用冲突,这种情况可以调整包含目录的优先级,或者给重名文件加上层目录区分引用,比如
#include "moduleA/test.h" - 配置的时候注意选择对应的配置(Debug/Release)和平台(x86/x64),如果要全场景生效可以选择「所有配置」「所有平台」后再修改。
内容的提问来源于stack exchange,提问作者Aleksej
相关产品推荐
相关产品推荐

