当前位置: 首页 > news >正文

【VSCode】多文件夹工作区的头文件路径引用

工作区下有多个子文件夹,无法使用一个json覆盖多个文件夹。

每个子文件夹下定义一个.vscode/c_cpp_properties.json

c_cpp_properties.json作用于只有.vscode所在目录

{ "configurations": [ { "name": "IAR_Platform", "includePath": [ "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\BSPp\\HT60xx\\CMSIS\\Include\\CM0", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\BSPp\\HT60xx\\HT60xx_StdPeriph_Driver", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\BSPp\\HT60xx\\HT60xx_StdPeriph_Driver\\inc", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_algorithm", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_button", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_debug", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_delay", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_encrypt", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_freqScan", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_highFreqEE", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_mem", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_msg", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_paraGuard", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_rtc", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_snap", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_tick", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_trace", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_varGuard", "${workspaceFolder}\\PRJ\\..\\..\\..\\platform\\Utils\\SEGGER_RTT_V660\\RTT", "${workspaceFolder}\\PRJ\\..\\BLL", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_board", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_APPLayer", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_DatalinkerLayer", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_ObjectLayer", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_ServiceLayer", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_linkLayer\\halfDuplex", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbus_logic", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbus_logic\\rtu", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbus_logic\\tcp", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbusRtu_app", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_energy", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_manage", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_measure", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_support", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_tariff", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_display", "${workspaceFolder}\\PRJ\\..\\BLL\\BLL_update", "${workspaceFolder}\\PRJ\\..\\BSP", "${workspaceFolder}\\PRJ\\..\\BSP\\EMU_HT502x", "${workspaceFolder}\\PRJ\\..\\BSP\\HT502x", "${workspaceFolder}\\PRJ\\..\\BSP\\HT502x\\CMSIS\\Device", "${workspaceFolder}\\PRJ\\..\\CFG", "${workspaceFolder}\\PRJ\\..\\CFG\\CFG_BLL", "${workspaceFolder}\\PRJ\\..\\CFG\\CFG_BSP", "${workspaceFolder}\\PRJ\\..\\CFG\\CFG_SERV", "${workspaceFolder}\\PRJ\\..\\SERV" ], "intelliSenseMode": "windows-gcc-x64", "compilerPath": "D:\\SoftwareBackup\\GreenSoftware\\RedPandaIDE\\MinGW64\\bin\\gcc.exe", "cStandard": "c17", "cppStandard": "gnu++17", "defines": [ "HT502x", "__no_init=" ] } ], "version": 4 }

如果想要多文件夹工作区的全局头文件应用,可以在工作区文件里定义,如下:

GMRAIL_APP_HT5027E.code-workspace(可替代c_cpp_properties.json)

{ "folders": [ { "path": ".." }, { "path": "../../../platform" } ], "settings": { "C_Cpp.default.includePath": [ "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\BSPp\\HT60xx\\CMSIS\\Include\\CM0", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\BSPp\\HT60xx\\HT60xx_StdPeriph_Driver", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\BSPp\\HT60xx\\HT60xx_StdPeriph_Driver\\inc", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_algorithm", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_button", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_debug", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_delay", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_encrypt", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_freqScan", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_highFreqEE", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_mem", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_msg", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_paraGuard", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_rtc", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_snap", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_tick", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_trace", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\SERVp\\SERVp_varGuard", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\..\\..\\platform\\Utils\\SEGGER_RTT_V660\\RTT", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_board", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_APPLayer", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_DatalinkerLayer", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_ObjectLayer", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_DLMS\\DLMS_ServiceLayer", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_linkLayer\\halfDuplex", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbus_logic", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbus_logic\\rtu", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbus_logic\\tcp", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_comm\\BLL_comm_modbus\\modbusRtu_app", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_energy", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_manage", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_measure", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_support", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_tariff", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_display", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BLL\\BLL_update", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BSP", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BSP\\EMU_HT502x", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BSP\\HT502x", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\BSP\\HT502x\\CMSIS\\Device", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\CFG", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\CFG\\CFG_BLL", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\CFG\\CFG_BSP", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\CFG\\CFG_SERV", "${workspaceFolder:GMRAIL_APP_HT5027E}\\PRJ\\..\\SERV" ], "files.encoding": "gb2312", } }
http://www.jsqmd.com/news/662051/

相关文章:

  • 2026年3月光学玻璃品牌推荐,支持来图定制加工,异形件均可按需生产制作 - 品牌推荐师
  • Access练习题(3)
  • 从摇骰子到抽奖机:用Arduino的random和randomSeed函数打造5个小项目
  • SQL利用窗口函数实现轻量级报表设计_实战技巧
  • 致远ZLG 功率分析仪PA2000mini
  • 从滑动窗口到RPN:目标检测候选区域生成技术的演进与核心
  • STM32F4标准库+LAN8720网线热插拔实战:从官方EVAL工程到实际项目的移植避坑指南
  • 2026年葫芦岛汽车贴膜行业选型指南白皮书 - GrowthUME
  • Obsidian Dataview终极指南:5个简单步骤将笔记库变为智能数据库
  • 如何在PC上免费玩Switch游戏?Ryujinx模拟器让你轻松实现
  • 气象科研人必备:用Python+WRF+Cartopy绘制专业雷达回波图(附完整代码)
  • Mapbox GL JS 实战:从零构建交互式地理可视化应用
  • 财务大数据是什么?怎么选财务大数据自动化工具?
  • 2026 年葫芦岛汽车贴膜全流程深度攻略:从选型到交付一站式指南 - GrowthUME
  • 先锁定目标客户,再找获客方法-佛山鼎策创局破局增长咨询
  • 2026年2款HR系统横评:红海云与用友谁更适合制造业?
  • 测试文章2
  • 沙盒测试-前缀和
  • 如何高效利用开源API资源库:开发者必备的完整指南
  • Python的__enter__传播上下文
  • WarcraftHelper:3步解决魔兽争霸3在Win11的兼容性问题
  • BaiduPCS-Go深度解析:命令行网盘管理实战指南
  • AI编程革命:5分钟生成高效脚本
  • abinit学习日记十八——tgw1_5.abi
  • 如何3分钟制作专属生日祝福网页:免费开源工具终极指南
  • 西门子200smart与3台施耐德ATV71变频器通讯程序 可靠稳定,程序自动走完Drivec...
  • Redux状态调试困境如何破局?深度解析DevTools生态系统核心能力
  • 带精英策略的非支配排序遗传算法(NSGA-II)C++实现
  • 别再只会点灯了!用CubeMX和HAL库玩转GPIO的5个实用小技巧(附代码)
  • INS/GNSS组合导航:从KF到PF,深入解析四大滤波器的演进与实战选型