v853 sdk无法使用bear

关于V853使用bear编译,以方便vscode查看代码时遇到了问题,添加bear后make无法正常执行(不添加bear可以顺利完成编译),log如下:
root@billy:/home/billy/work/tina-v853-open# bear --version
bear 3.0.18
root@billy:/home/billy/work/tina-v853-open# bear make
Unrecognized parameter: “make”
Usage: bear [–output ] [–verbose] – …
root@billy:/home/billy/work/tina-v853-open# bear – make
make: *** No targets specified and no makefile found. Stop.
root@billy:/home/billy/work/tina-v853-open#

在同样的环境下,我尝试去编译v831的sdk,可以使用bear并且顺利编译。
不知何故,如何解决?

您好,这是由于没有此编译规则,关于全志Tina SDK的使用请参考:概述与介绍 - 全志Linux Tina-SDK开发完全手册

不知你说的没有此编译规则是指?v831的sdk也是tina的,lunch完成后,正常是直接“make",也可以使用”bear – make"来正常完成编译,生成json辅组vscode预览。全志的536的tina sdk我也试过,也可以,同样是tina sdk,v853的tina则不行,难道前面加bear来编译是要tina本身支持?

那抱歉,我没有使用过bear,无法给您提供建议

这个bear也是之前韦老师视频中介绍的,不过那时是说的阅览内核代码,实现快速跳转。

后来我就用到全志的sdk上,在lunch后的make命令前加bear,以便生成辅助跳转的json文件,方便查看代码。这个方法用到853的sdk时行不通了。
像这类sdk有什么推荐方法看代码么?,在没有bear辅助的情况下vscode似乎也很不方便,跳转之类的也不好使。

在v853的Tina SDK中,执行lunch配置环境变量以后的make并不是真正的make,这个分析编译脚本就可以发现。如果是想要在编译Linux生成对应的compile_commands.json文件的话,可以修改linux/scripts/build.sh中找到build_kernel()这个函数,在最终的完整编译内核的命令前加上bear即可,编译uboot同理。
但是要注意一点,生成compile_commands.json后再将脚本中的bear给去掉,避免重新编译由于不是完全编译而导致生成的json文件内容为空。

 bear make ARCH=${ARCH} CROSS_COMPILE="${CCACHE_Y}${CROSS_COMPILE}" -j${LICHEE_JLEVEL} ${arch_target} modules

好的,我试试,非常感谢。不然看代码太不方便了。

大佬您好,请问这种方法尝试过后,生成json为空,可能的问题是什么呢?是首次完全编译