ctags: Unknown option: --kinds-c
在本地搭建 Bootlin elixir 查阅内核代码的时候,每当执行到 python3 update.py 这一步骤的时候,终端上总会报“ctags: Unknown option: --kinds-c”这个warning,执行完成以后在浏览器打开bootlin的页面,会发现ident功能不能用(无法在网页上直接点击函数名/变量名去查看函数/变量的定义和调用)。
搭建本地bootlin elixxir的方法可以参考一下两个链接:
https://barryx.cn/build_bootlin_elixir/
https://github.com/bootlin/elixir
根据搭建的步骤,明明已经安装了特殊版本的ctags(universal-ctags_0+git20200526-0ubuntu1_amd64.deb),为啥还是不行呢?
查看elixir/script.sh,发现使用的命令就是ctags 。
执行 dpkg -X universal-ctags_0+git20200526-0ubuntu1_amd64.deb ./ 把deb包解压缩,发现它的usr/bin/目录下有ctags-universal、readtags两个可执行程序。
# which ctags
/usr/bin/ctags
# ls -l /usr/bin/ctags lrwxrwxrwx 1 root root 23 12月 18 2021 /usr/bin/ctags -> /etc/alternatives/ctags
# ls -l /etc/alternatives/ctags lrwxrwxrwx 1 root root 24 12月 16 14:26 /etc/alternatives/ctags -> /usr/bin/ctags-exuberant
是不是发现点什么了?是的,系统里原先安装有ctags,特殊版本的ctags虽然安装了但是并没有使用到。
那就重定向/etc/alternatives/ctags到/usr/bin/ctags-universal呗。
先 rm /etc/alternatives/ctags 删除,再 ln -s /usr/bin/ctags-universal /etc/alternatives/ctags 重新生成。
这样,再调用ctags的时候,由于 /usr/bin/ctags -> /etc/alternatives/ctags -> /usr/bin/ctags-universal,调用的就是特殊版本的ctags(/usr/bin/ctags-universal)了。
这时再执行python3 update.py,就不会再报“ctags: Unknown option: --kinds-c”的warning了。索引生成完成以后,ident功能也可以正常使用了。
本文来自博客园,作者:闹闹爸爸,转载请注明原文链接:https://www.cnblogs.com/wanglouxiaozi/p/16987386.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)