解决gtags: no python

最近查看源码的时候使用VSCode发现搜索项目比较大的符号比较慢,而使用vim配合LeaderF插件的ctags功能的话吃内存又比较多而且达不到预期的效果,翻看了下LeaderF的提交发现作者在做gtags相关支持,就顺道下载使用了下。

但是在使用gtags的遇到个问题,执行:

gtags.exe --gtagsconf “{gtags path}\share\gtags\gtags.conf” --gtagslabel native-pygments

会出现:

gtags: no python

翻看了下global的源码(https://github.com/harai/gnu-global),找到(https://github.com/harai/gnu-global/blob/origin/plugin-factory/pygments-parser.c#L126):

   if (!CreateProcess(NULL, arg, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi))
       param->die("no python");

就顺道使用x64dbg跟了一下,但是由于跟这种带参数和目录的程序得在命令行下操作:

init gtags.exe,"–gtagsconf {gtags path}\share\gtags\gtags.conf --gtagslabel native-pygments"

x64dbg的命令参数使用","分割,然后在CreateProcessA处下断点:

可以看到lpCommandLine是调用python命令,但是我使用的是msys2,安装python3的话只有python3命令,所以需要:

ln -s /mingw32/bin/python3 /mingw32/bin/python.exe

注意在msys2下创建链接实际上就是把可执行文件复制一份,并且得加上exe后缀。

转载请注明: 本文《解决gtags: no python》来源于bstaint的博客

没有评论: