vscode + clangd 配置代码阅读环境
参考
- https://www.cnblogs.com/little55/p/18875829
- https://blog.csdn.net/weixin_42105169/article/details/148127610
- vscode+clangd轻松实现linux内核代码跳转
- 使用vscode+clangd阅读linux内核源码环境搭建过程中遇到的问题的一些总结
- clangd不能跳转,并报failed: Couldn't build compiler instance错误
- Android 代码阅读环境搭建:VSCODE + SSH + CLANGD(详细版)
- clangd官方文档
- 设置VsCode搜索时排除文件,文件列表中隐藏文件
- Android Tips: vscode
- vscode中clangd添加include path
关键点
-
vscode的clangd插件

配置:

--compile-commands-dir=${workspaceFolder} --background-index --completion-style=detailed --header-insertion=never --log=info -
linux上clangd的路径

把所有的clangd路径都设置一下 -
.clangd文件
调整传给clangd的参数,因为实际使用的可能是GCC,它的参数可能不适合clangd
下面是一个.clangd文件的参考:$ cat .clangd CompileFlags: Remove: [-fno-allow-store-data-races, -fconserve-stack, -mabi=lp64] -
设置要排除的文件
对于drivers目录下的子目录比较多,可以使用脚本来生成,然后手动剔除:find drivers/ arch/ fs/ -type d -maxdepth 1 | sort | awk '{printf("\"\*\*/%s\": true,\n", $1);}'下面是一个参考:
点击查看代码
{ "files.exclude": { "**/.gitignore": true, "**/Documentation": true, "**/tools": true, "**/scripts": true, "**/samples": true, "**/LICENSES": true, "**/usr": true, "**/include/dt-bindings": true, "**/arch/alpha": true, "**/arch/arc": true, "**/arch/arm": true, "**/arch/arm64": false, "**/arch/c6x": true, "**/arch/csky": true, "**/arch/h8300": true, "**/arch/hexagon": true, "**/arch/ia64": true, "**/arch/m68k": true, "**/arch/microblaze": true, "**/arch/mips": true, "**/arch/nds32": true, "**/arch/nios2": true, "**/arch/openrisc": true, "**/arch/parisc": true, "**/arch/powerpc": true, "**/arch/riscv": true, "**/arch/s390": true, "**/arch/sh": true, "**/arch/sparc": true, "**/arch/um": true, "**/arch/unicore32": true, "**/arch/x86": false, "**/arch/xtensa": true, "**/drivers/accessibility": true, "**/drivers/acpi": true, "**/drivers/amba": false, "**/drivers/android": false, "**/drivers/ata": true, "**/drivers/atm": true, "**/drivers/auxdisplay": true, "**/drivers/base": false, "**/drivers/bcma": true, "**/drivers/block": false, "**/drivers/bluetooth": true, "**/drivers/bus": true, "**/drivers/cdrom": true, "**/drivers/char": false, "**/drivers/clk": true, "**/drivers/clocksource": true, "**/drivers/connector": false, "**/drivers/counter": false, "**/drivers/cpufreq": false, "**/drivers/cpuidle": false, "**/drivers/crypto": true, "**/drivers/dax": false, "**/drivers/dca": true, "**/drivers/devfreq": false, "**/drivers/dio": true, "**/drivers/dma": true, "**/drivers/dma-buf": false, "**/drivers/edac": true, "**/drivers/eisa": true, "**/drivers/extcon": true, "**/drivers/firewire": true, "**/drivers/firmware": true, "**/drivers/fpga": true, "**/drivers/fsi": true, "**/drivers/gnss": true, "**/drivers/gpio": true, "**/drivers/gpu": true, "**/drivers/greybus": true, "**/drivers/hid": true, "**/drivers/hsi": true, "**/drivers/hv": true, "**/drivers/hwmon": true, "**/drivers/hwspinlock": true, "**/drivers/hwtracing": true, "**/drivers/i2c": true, "**/drivers/i3c": true, "**/drivers/ide": true, "**/drivers/idle": true, "**/drivers/iio": false, "**/drivers/infiniband": true, "**/drivers/input": false, "**/drivers/interconnect": true, "**/drivers/iommu": false, "**/drivers/ipack": true, "**/drivers/irqchip": false, "**/drivers/isdn": true, "**/drivers/leds": true, "**/drivers/lightnvm": true, "**/drivers/macintosh": true, "**/drivers/mailbox": true, "**/drivers/mcb": true, "**/drivers/md": false, "**/drivers/media": true, "**/drivers/memory": true, "**/drivers/memstick": true, "**/drivers/message": true, "**/drivers/mfd": false, "**/drivers/mi-reclaim": false, "**/drivers/misc": false, "**/drivers/mmc": false, "**/drivers/mtd": true, "**/drivers/mux": true, "**/drivers/net": true, "**/drivers/nfc": true, "**/drivers/ntb": true, "**/drivers/nubus": true, "**/drivers/nvdimm": true, "**/drivers/nvme": true, "**/drivers/nvmem": true, "**/drivers/of": false, "**/drivers/opp": false, "**/drivers/oprofile": true, "**/drivers/parisc": true, "**/drivers/parport": true, "**/drivers/pci": true, "**/drivers/pcmcia": true, "**/drivers/perf": true, "**/drivers/phy": true, "**/drivers/pinctrl": true, "**/drivers/platform": true, "**/drivers/pnp": true, "**/drivers/power": false, "**/drivers/powercap": true, "**/drivers/pps": true, "**/drivers/ps3": true, "**/drivers/ptp": true, "**/drivers/pwm": true, "**/drivers/rapidio": true, "**/drivers/ras": true, "**/drivers/regulator": true, "**/drivers/remoteproc": true, "**/drivers/reset": true, "**/drivers/rpmsg": true, "**/drivers/rtc": true, "**/drivers/rtmm": true, "**/drivers/s390": true, "**/drivers/sbus": true, "**/drivers/scsi": true, "**/drivers/sfi": true, "**/drivers/sh": true, "**/drivers/siox": true, "**/drivers/slimbus": true, "**/drivers/soc": false, "**/drivers/soundwire": true, "**/drivers/spi": true, "**/drivers/spmi": true, "**/drivers/ssb": true, "**/drivers/staging": false, "**/drivers/target": true, "**/drivers/tc": true, "**/drivers/tee": false, "**/drivers/thermal": false, "**/drivers/thunderbolt": true, "**/drivers/tty": false, "**/drivers/uio": false, "**/drivers/usb": true, "**/drivers/vfio": true, "**/drivers/vhost": true, "**/drivers/video": true, "**/drivers/virt": false, "**/drivers/virtio": false, "**/drivers/visorbus": true, "**/drivers/vlynq": true, "**/drivers/vme": true, "**/drivers/w1": true, "**/drivers/watchdog": true, "**/drivers/xen": true, "**/drivers/zorro": true, "**/fs/9p": false, "**/fs/adfs": true, "**/fs/affs": true, "**/fs/afs": true, "**/fs/autofs": false, "**/fs/befs": true, "**/fs/bfs": true, "**/fs/btrfs": true, "**/fs/cachefiles": false, "**/fs/ceph": true, "**/fs/cifs": true, "**/fs/coda": true, "**/fs/configfs": false, "**/fs/cramfs": true, "**/fs/crypto": true, "**/fs/debugfs": false, "**/fs/devpts": false, "**/fs/dlm": true, "**/fs/ecryptfs": true, "**/fs/efivarfs": true, "**/fs/efs": true, "**/fs/erofs": true, "**/fs/exfat": true, "**/fs/exportfs": true, "**/fs/ext2": false, "**/fs/ext4": true, "**/fs/f2fs": true, "**/fs/fat": true, "**/fs/freevxfs": true, "**/fs/fscache": true, "**/fs/fuse": true, "**/fs/gfs2": true, "**/fs/hfs": true, "**/fs/hfsplus": true, "**/fs/hostfs": true, "**/fs/hpfs": true, "**/fs/hugetlbfs": false, "**/fs/incfs": true, "**/fs/iomap": false, "**/fs/isofs": true, "**/fs/jbd2": true, "**/fs/jffs2": true, "**/fs/jfs": true, "**/fs/kernfs": false, "**/fs/lockd": true, "**/fs/minix": true, "**/fs/nfs": true, "**/fs/nfs_common": true, "**/fs/nfsd": true, "**/fs/nilfs2": true, "**/fs/nls": true, "**/fs/notify": true, "**/fs/ntfs": true, "**/fs/ocfs2": true, "**/fs/omfs": true, "**/fs/openpromfs": true, "**/fs/orangefs": true, "**/fs/overlayfs": false, "**/fs/proc": false, "**/fs/pstore": false, "**/fs/qnx4": true, "**/fs/qnx6": true, "**/fs/quota": true, "**/fs/ramfs": false, "**/fs/reiserfs": true, "**/fs/romfs": true, "**/fs/squashfs": false, "**/fs/sysfs": false, "**/fs/sysv": false, "**/fs/tracefs": false, "**/fs/ubifs": true, "**/fs/udf": true, "**/fs/ufs": true, "**/fs/unicode": true, "**/fs/verity": false, "**/fs/xfs": true, }, "search.exclude": { "**/.gitignore": true, "**/Documentation": true, "**/tools": true, "**/scripts": true, "**/samples": true, "**/LICENSES": true, "**/usr": true, "**/include/dt-bindings": true, "**/arch/alpha": true, "**/arch/arc": true, "**/arch/arm": true, "**/arch/arm64": false, "**/arch/c6x": true, "**/arch/csky": true, "**/arch/h8300": true, "**/arch/hexagon": true, "**/arch/ia64": true, "**/arch/m68k": true, "**/arch/microblaze": true, "**/arch/mips": true, "**/arch/nds32": true, "**/arch/nios2": true, "**/arch/openrisc": true, "**/arch/parisc": true, "**/arch/powerpc": true, "**/arch/riscv": true, "**/arch/s390": true, "**/arch/sh": true, "**/arch/sparc": true, "**/arch/um": true, "**/arch/unicore32": true, "**/arch/x86": false, "**/arch/xtensa": true, "**/drivers/accessibility": true, "**/drivers/acpi": true, "**/drivers/amba": false, "**/drivers/android": false, "**/drivers/ata": true, "**/drivers/atm": true, "**/drivers/auxdisplay": true, "**/drivers/base": false, "**/drivers/bcma": true, "**/drivers/block": false, "**/drivers/bluetooth": true, "**/drivers/bus": true, "**/drivers/cdrom": true, "**/drivers/char": false, "**/drivers/clk": true, "**/drivers/clocksource": true, "**/drivers/connector": false, "**/drivers/counter": false, "**/drivers/cpufreq": false, "**/drivers/cpuidle": false, "**/drivers/crypto": true, "**/drivers/dax": false, "**/drivers/dca": true, "**/drivers/devfreq": false, "**/drivers/dio": true, "**/drivers/dma": true, "**/drivers/dma-buf": false, "**/drivers/edac": true, "**/drivers/eisa": true, "**/drivers/extcon": true, "**/drivers/firewire": true, "**/drivers/firmware": true, "**/drivers/fpga": true, "**/drivers/fsi": true, "**/drivers/gnss": true, "**/drivers/gpio": true, "**/drivers/gpu": true, "**/drivers/greybus": true, "**/drivers/hid": true, "**/drivers/hsi": true, "**/drivers/hv": true, "**/drivers/hwmon": true, "**/drivers/hwspinlock": true, "**/drivers/hwtracing": true, "**/drivers/i2c": true, "**/drivers/i3c": true, "**/drivers/ide": true, "**/drivers/idle": true, "**/drivers/iio": false, "**/drivers/infiniband": true, "**/drivers/input": false, "**/drivers/interconnect": true, "**/drivers/iommu": false, "**/drivers/ipack": true, "**/drivers/irqchip": false, "**/drivers/isdn": true, "**/drivers/leds": true, "**/drivers/lightnvm": true, "**/drivers/macintosh": true, "**/drivers/mailbox": true, "**/drivers/mcb": true, "**/drivers/md": false, "**/drivers/media": true, "**/drivers/memory": true, "**/drivers/memstick": true, "**/drivers/message": true, "**/drivers/mfd": false, "**/drivers/mi-reclaim": false, "**/drivers/misc": false, "**/drivers/mmc": false, "**/drivers/mtd": true, "**/drivers/mux": true, "**/drivers/net": true, "**/drivers/nfc": true, "**/drivers/ntb": true, "**/drivers/nubus": true, "**/drivers/nvdimm": true, "**/drivers/nvme": true, "**/drivers/nvmem": true, "**/drivers/of": false, "**/drivers/opp": false, "**/drivers/oprofile": true, "**/drivers/parisc": true, "**/drivers/parport": true, "**/drivers/pci": true, "**/drivers/pcmcia": true, "**/drivers/perf": true, "**/drivers/phy": true, "**/drivers/pinctrl": true, "**/drivers/platform": true, "**/drivers/pnp": true, "**/drivers/power": false, "**/drivers/powercap": true, "**/drivers/pps": true, "**/drivers/ps3": true, "**/drivers/ptp": true, "**/drivers/pwm": true, "**/drivers/rapidio": true, "**/drivers/ras": true, "**/drivers/regulator": true, "**/drivers/remoteproc": true, "**/drivers/reset": true, "**/drivers/rpmsg": true, "**/drivers/rtc": true, "**/drivers/rtmm": true, "**/drivers/s390": true, "**/drivers/sbus": true, "**/drivers/scsi": true, "**/drivers/sfi": true, "**/drivers/sh": true, "**/drivers/siox": true, "**/drivers/slimbus": true, "**/drivers/soc": false, "**/drivers/soundwire": true, "**/drivers/spi": true, "**/drivers/spmi": true, "**/drivers/ssb": true, "**/drivers/staging": false, "**/drivers/target": true, "**/drivers/tc": true, "**/drivers/tee": false, "**/drivers/thermal": false, "**/drivers/thunderbolt": true, "**/drivers/tty": false, "**/drivers/uio": false, "**/drivers/usb": true, "**/drivers/vfio": true, "**/drivers/vhost": true, "**/drivers/video": true, "**/drivers/virt": false, "**/drivers/virtio": false, "**/drivers/visorbus": true, "**/drivers/vlynq": true, "**/drivers/vme": true, "**/drivers/w1": true, "**/drivers/watchdog": true, "**/drivers/xen": true, "**/drivers/zorro": true, "**/fs/9p": false, "**/fs/adfs": true, "**/fs/affs": true, "**/fs/afs": true, "**/fs/autofs": false, "**/fs/befs": true, "**/fs/bfs": true, "**/fs/btrfs": true, "**/fs/cachefiles": false, "**/fs/ceph": true, "**/fs/cifs": true, "**/fs/coda": true, "**/fs/configfs": false, "**/fs/cramfs": true, "**/fs/crypto": true, "**/fs/debugfs": false, "**/fs/devpts": false, "**/fs/dlm": true, "**/fs/ecryptfs": true, "**/fs/efivarfs": true, "**/fs/efs": true, "**/fs/erofs": true, "**/fs/exfat": true, "**/fs/exportfs": true, "**/fs/ext2": false, "**/fs/ext4": true, "**/fs/f2fs": true, "**/fs/fat": true, "**/fs/freevxfs": true, "**/fs/fscache": true, "**/fs/fuse": true, "**/fs/gfs2": true, "**/fs/hfs": true, "**/fs/hfsplus": true, "**/fs/hostfs": true, "**/fs/hpfs": true, "**/fs/hugetlbfs": false, "**/fs/incfs": true, "**/fs/iomap": false, "**/fs/isofs": true, "**/fs/jbd2": true, "**/fs/jffs2": true, "**/fs/jfs": true, "**/fs/kernfs": false, "**/fs/lockd": true, "**/fs/minix": true, "**/fs/nfs": true, "**/fs/nfs_common": true, "**/fs/nfsd": true, "**/fs/nilfs2": true, "**/fs/nls": true, "**/fs/notify": true, "**/fs/ntfs": true, "**/fs/ocfs2": true, "**/fs/omfs": true, "**/fs/openpromfs": true, "**/fs/orangefs": true, "**/fs/overlayfs": false, "**/fs/proc": false, "**/fs/pstore": false, "**/fs/qnx4": true, "**/fs/qnx6": true, "**/fs/quota": true, "**/fs/ramfs": false, "**/fs/reiserfs": true, "**/fs/romfs": true, "**/fs/squashfs": false, "**/fs/sysfs": false, "**/fs/sysv": false, "**/fs/tracefs": false, "**/fs/ubifs": true, "**/fs/udf": true, "**/fs/ufs": true, "**/fs/unicode": true, "**/fs/verity": false, "**/fs/xfs": true, } }
本文来自博客园,作者:dolinux,未经同意,禁止转载

浙公网安备 33010602011771号