VScode 打开keil5工程时候的跳转异常问题

前提:

  1. keil5的编辑页面太丑了,我想用vs code去当做keil5的一个编辑器
  2. 在vs code里下载了“Keil Assistant”插件后,发现可以再vs code打开keil工程了, 并且该插件的编译和下载功能都是正常的

问题:

  1. vs code里面能够正常跳转所有“#include "xxx“”里面的.h文件,在引用.h文件中的宏定义的时候,全是“无法定义标识符”;
  2. 当我打开一次宏定义所在的.h文件后,就正常了,但是没打开过的.h文件所在的宏定义,就也还是“无法定义标识符”;

你需要看看c_cpp_properties.json中是否包含所有的你的.h文件的路径,并且全局define也需要添加,你看看这是我的配置文件:

{
    "configurations": [
        {
            "name": "STM32F103",
            "includePath": [
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\STM32F10x_StdPeriph_Lib_V3.6.0\\Libraries\\STM32F10x_StdPeriph_Driver\\inc",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\APP",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\BSP",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\STM32F10x_StdPeriph_Lib_V3.6.0\\Libraries\\CMSIS\\CM3\\CoreSupport",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\STM32F10x_StdPeriph_Lib_V3.6.0\\Libraries\\CMSIS\\CM3\\DeviceSupport\\ST\\STM32F10x",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\BSP\\inc",
                "C:\\Keil_v5\\ARM\\ARMCC\\include",
                "C:\\Keil_v5\\ARM\\ARMCC\\include\\rw",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\BSP\\src",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\STM32F10x_StdPeriph_Lib_V3.6.0\\Libraries\\STM32F10x_StdPeriph_Driver\\src",
                "d:\\WorkSpace\\STM32\\F1\\STM32_F1\\STM32F10x_StdPeriph_Lib_V3.6.0\\Libraries\\CMSIS\\CM3\\DeviceSupport\\ST\\STM32F10x\\startup\\arm"
            ],
            "defines": [
                "USE_STDPERIPH_DRIVER",
                "ALIENTEK_ELITE_BOARD",
                "__CC_ARM",
                "__arm__",
                "__align(x)=",
                "__ALIGNOF__(x)=",
                "__alignof__(x)=",
                "__asm(x)=",
                "__forceinline=",
                "__restrict=",
                "__global_reg(n)=",
                "__inline=",
                "__int64=long long",
                "__INTADDR__(expr)=0",
                "__irq=",
                "__packed=",
                "__pure=",
                "__smc(n)=",
                "__svc(n)=",
                "__svc_indirect(n)=",
                "__svc_indirect_r7(n)=",
                "__value_in_regs=",
                "__weak=",
                "__writeonly=",
                "__declspec(x)=",
                "__attribute__(x)=",
                "__nonnull__(x)=",
                "__register=",
                "__breakpoint(x)=",
                "__cdp(x,y,z)=",
                "__clrex()=",
                "__clz(x)=0U",
                "__current_pc()=0U",
                "__current_sp()=0U",
                "__disable_fiq()=",
                "__disable_irq()=",
                "__dmb(x)=",
                "__dsb(x)=",
                "__enable_fiq()=",
                "__enable_irq()=",
                "__fabs(x)=0.0",
                "__fabsf(x)=0.0f",
                "__force_loads()=",
                "__force_stores()=",
                "__isb(x)=",
                "__ldrex(x)=0U",
                "__ldrexd(x)=0U",
                "__ldrt(x)=0U",
                "__memory_changed()=",
                "__nop()=",
                "__pld(...)=",
                "__pli(...)=",
                "__qadd(x,y)=0",
                "__qdbl(x)=0",
                "__qsub(x,y)=0",
                "__rbit(x)=0U",
                "__rev(x)=0U",
                "__return_address()=0U",
                "__ror(x,y)=0U",
                "__schedule_barrier()=",
                "__semihost(x,y)=0",
                "__sev()=",
                "__sqrt(x)=0.0",
                "__sqrtf(x)=0.0f",
                "__ssat(x,y)=0",
                "__strex(x,y)=0U",
                "__strexd(x,y)=0",
                "__strt(x,y)=",
                "__swp(x,y)=0U",
                "__usat(x,y)=0U",
                "__wfe()=",
                "__wfi()=",
                "__yield()=",
                "__vfp_status(x,y)=0"
            ],
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}