【小安派R2测评】安信可小安派R2 - 使用 clangd 优化代码提示与跳转

[复制链接]
查看1428 | 回复6 | 2024-9-23 22:25:18 | 显示全部楼层 |阅读模式

一、背景

在完成开发环境搭建后,vscode 自带的代码提示与跳转不太好用,经常报错或者跳不动。在开始大规模改代码前,有必要先使用 clangd 来优化一下。

二、效果

代码跳转非常快,能一直跳转到最底层的函数,方便阅读代码。

![]()![]()

代码提示也非常到位,可以快速完成功能搭建。

![]()

三、主要步骤

3.1 安装必要的软件。

3.1.1 安装 clangd

sudo apt install clangd

3.1.2 安装 compiledb

pip3 install compiledb

3.2 生成编译数据库

然后分析项目的编译过程,在合适的地方生成编译数据库

从执行 make 的目录,也就是 AiPi-Eyes-Rx 目录找到 Makefile,发现最后包含了 SDK 路径的 project.build

![]()

继续查,会发现执行 make 后,会在 AiPi-Eyes-Rx/build 目录生成最终的 makefile,然后执行 make

![]()

转到 AiPi-Eyes-Rx/build 目录,执行命令生成编译数据库

compiledb -n make

可以看到在 build 目录生成了 compile_commands.json 文件,内容如下:

![]()

编译数据库指定了编译器、编译参数以及各个文件的路径,可以让 clangd 快速提示以及跳转。

3.3 生成 vscode 配置

在项目的根目录新建 .vscode/settings.json文件,内容如下:

{
    "clangd.arguments": [
        "--compile-commands-dir=AiPi-Eyes-Rx/build",
        "--all-scopes-completion",
        "--background-index",
        "--completion-style=detailed",
        "--header-insertion=iwyu",
        "--header-insertion-decorators",
        "-j=8",
        "--pch-storage=disk",
        "--clang-tidy",
        "--completion-parse=auto"
    ],
    "clangd.path": "/usr/bin/clangd"
}

其中 clangd.path 根据自身情况做调整。

3.4 排除特定编译 flag

再在根目录新建 .clangd 配置文件,用于排除特定的 flag,否则 clangd 会报错:Failed to prepare a compiler instance: valid target CPU values are

CompileFlags:
    Remove: ["-march=rv32imafcpzpsfoperand_xtheade", "-mabi=ilp32f", "-mtune=e907"]

注意是项目的根目录,不是 build 目录。

重新打开窗口后,就能看到 clangd 的代码提示了,跳转速度也很快,编程体验很好。

回复

使用道具 举报

爱笑 | 2024-9-24 08:33:09 | 显示全部楼层
大佬大佬!
用心做好保姆工作
回复

使用道具 举报

bzhou830 | 2024-9-24 08:41:32 | 显示全部楼层
大佬,能搞个傻瓜版的一键配置好吗
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

一只呆头鹅 | 2024-9-24 09:58:02 | 显示全部楼层
厉害了
回复

使用道具 举报

walkman | 2024-11-5 14:23:11 来自手机 | 显示全部楼层
支持
回复

使用道具 举报

walkman | 2024-11-5 14:25:28 来自手机 | 显示全部楼层
支持
回复

使用道具 举报

Lisaro | 2024-11-8 18:41:00 | 显示全部楼层
解决一大痛点
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则