c++makefile+clangd生成compile-创新互联

补充vscode + clangd 开发 c\c++

10年的电白网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整电白建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“电白网站设计”,“电白网站推广”以来,每个客户项目都认真落实执行。

一个项目用makefile管理,工程很大,vscode的ms cpp tools代码跳转功能基本处于残废状态,

有想将makefile 迁移至cmake,但是大概看了下工程量很大,基本不现实,吃力不讨好;

没办法,继续clangd,clangd所需要的compile_command.json 再makefile下无法类似cmake一键生成,
不过makefile 上同样有一个工具可以利用,bear

bear安装,源码编译还是apt-install都可以,大部分linux系统都有对应的分发包。

ubuntu 20.04 :

sudo apt install bear

使用方法也很简单,基本原理好像就是使用LD_PRELOAD去捕获对应的命令。

就是在编译代码的命令前添加 bear即可

bear文档写的是,

bear --

但是我这边分发包版本bear 2.3.11,以上运行有问题。运行命令不需要破折号,如下

bear make xxxx -j18

需要make clean,重新编译,原理如上所述,所以必须全量编译才能拦截对应的命令。

有可能会提示

ld.so: object '/usr/${LIB}/bear/libear.so' from LD_PRELOAD

命令里添加 -libear 强行指定库地址可以正常使用。

usage: bear [-h] [--version] [--verbose] [--cdb] [--use-cc]
            [--use-c++] [--append] [--libear LIBEAR]
            ...
bear -l /usr/lib/x86_64-linux-gnu/bear/libear.so make -j18

这个问题可能跟系统有关系,我用了别人的docker 镜像,bear安装上去后运行移植提示以上错误,后面自己做一个重新写dockerfile做docker镜像,就不再提示了,仅供参考吧

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:c++makefile+clangd生成compile-创新互联
标题URL:http://hbruida.cn/article/dsgioh.html