VSCode开发LINUX内核驱动——autoconf.h中宏定义不识别

由于autoconfig.h没有被内核驱动直接引用,所以VSCode无法建立驱动代码和这些宏定义之间的关联关系。即使在autoconfig.h中被定义的宏,在VSCode中也会被错误显示为未定义。解决方法:

1、在VSCode的c_cpp_properties.json中添加全局宏定义。
Ctrl+shift+p打开C/C++编译配置(JSON)

在这里插入图片描述
将autoconfig.h中的宏定义由

#define CONFIG_XXX 1

改为

“CONFIG_XXX = 1“,

将宏定义添加到"defines": []中

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "CONFIG_COMMON_CLK_SCMI = 1",
                "CONFIG_RING_BUFFER = 1",
                "CONFIG_HAVE_ARCH_SECCOMP_FILTER = 1",               
            ],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64",
            "configurationProvider": "ms-vscode.makefile-tools"
        }
    ],
    "version": 4
}

2、autoconf.h宏定义批量处理方法
新建一个临时文件tmp.h,将autoconf.h内容全部复制进去。将tmp.h中的注释删掉,选中 #define ,右键->更改所有匹配项,然后Ctrl+方向键→ 按字符串个数向右移动。

  • 移动到在CONFIG_XXX 后加上 =
  • 移动到行尾加上 ",
  • 移动到行首删除 #define
  • 字符串的宏定义需要单独处理,在引号前加上\
    在这里插入图片描述 在这里插入图片描述
    然后全部复制,放到c_cpp_properties.json的defines中。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值