首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用通用ctag支持编译Global

用通用ctag支持编译Global
EN

Stack Overflow用户
提问于 2019-03-09 02:31:25
回答 2查看 1.6K关注 0票数 2

我正在尝试用通用的ctag支持来构建GNU Global,但没有成功。我是否遗漏了一些东西,或者我使用的是GNU Global和univeral的不兼容版本?我正在Ubuntu18.04.2LTS上做这件事(也在Ubuntu16.04上测试)

正式安装说明

其他相关信息

简而言之,我执行以下命令。

代码语言:javascript
复制
git clone https://github.com/universal-ctags/ctags.git
cd ctags
cat docs/autotools.rst  # installation instructions

./autogen
./configure
make
make install

which ctags
# /usr/local/bin/ctags

ctags --version
# Universal Ctags 0.0.0(6365358b), Copyright (C) 2015 Universal Ctags Team
# Universal Ctags is derived from Exuberant Ctags.
# Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
#   Compiled: Mar  8 2019, 12:48:27
#   URL: https://ctags.io/
#   Optional compiled features: +wildcards, +regex, +iconv, +option-directory, +packcc

这似乎很好,ctags可执行文件按照预期构建标记文件。接下来,我尝试使用Global手册第4.2节的说明来安装Global (上面的链接)。

代码语言:javascript
复制
wget http://tamacom.com/global/global-6.6.3.tar.gz
tar -xzvf global-6.6.3.tar.gz
cd global-6.6.3

./configure --with-universal-ctags=/usr/local/bin/ctags
make
sudo make install

export GTAGSCONF=/usr/local/share/gtags/gtags.conf
export GTAGSLABEL=new-ctags
gtags
# ctags: Warning: Unknown language "Ada:.adb.ads.Ada,Ant:(build.xml)(*.build.xml).ant.xml,Asm:.A51(*.29[kK])(*.[68][68][kKsSxX])(*.[xX][68][68]).asm.ASM.s.S,Asp:.asp.asa,Autoconf:(configure.in).ac,Automake:(Makefile.am).am,Awk:.awk.gawk.mawk,Basic:.bas.bi.bb.pb,BETA:.bet,Clojure:.clj.cljs.cljc,C:.c,C++:.c++.cc.cp.cpp.cxx.h.h++.hh.hp.hpp.hxx.inl,CSS:.css,C#:.cs,ctags:.ctags,Cobol:.cbl.cob.CBL.COB,CUDA:.cu.cuh,D:.d.di,Diff:.diff.patch,DTD:.dtd.mod,DTS:.dts.dtsi,DosBatch:.bat.cmd,Eiffel:.e,elm:.elm,Erlang:.erl.ERL.hrl.HRL,Falcon:.fal.ftd,Flex:.as.mxml,Fortran:.f.for.ftn.f77.f90.f95.f03.f08.f15,gdbinit:(.gdbinit).gdb,Go:.go,HTML:.htm.html,Iniconf:.ini.conf,ITcl:.itcl,Java:.java,JavaProperties:.properties,JavaScript:.js.jsx,JSON:.json,LdScript:(*.lds.S)(ld.*).lds.scr.ld,Lisp:.cl.clisp.el.l.lisp.lsp,Lua:.lua,M4:.m4.spt,man:.1.2.3.4.5.6.7.8.9,Make:([Mm]akefile)(GNUmakefile).mak.mk,MatLab:.m,Myrddin:.myr,ObjectiveC:.mm,OCaml:.ml.mli.aug,passwd:(passwd),Pascal:.p.pas,Perl:.pl.pm.ph.plx.perl,Perl6:.p6.pm6.pl6,PHP:.php.php3.php4.php5.php7.phtml,pod:.pod,Protobuf:.proto,puppetManifest:.pp,Python:.py.pyx.pxd.pxi.scons,QemuHX:.hx,R:.r.R.q,REXX:.rexx.rx,Robot:.robot,RpmSpec:.spec,reStructuredText:.rest.reST.rst,Ruby:.rb.ruby,Rust:.rs,Scheme:.SCM.SM.sch.scheme.scm.sm,Sh:.sh.SH.bsh.bash.ksh.zsh.ash,SLang:.sl,SML:.sml.sig,SQL:.sql,SystemdUnit:.unit.service.socket.device.mount.automount.swap.target.path.timer.snapshot.scope.slice.time,Tcl:.tcl.tk.wish.exp,Tex:.tex,TTCN:.ttcn.ttcn3,Vera:.vr.vri.vrh,Verilog:.v,SystemVerilog:.sv.svh.svi,VHDL:.vhdl.vhd,Vim:(vimrc)([._]vimrc)(gvimrc)([._]gvimrc).vim.vba,WindRes:.rc,YACC:.y,YumRepo:.repo,Zephir:.zep,Glade:.glade,Maven2:(pom.xml).pom,PlistXML:.plist,RelaxNG:.rng,SVG:.svg,XSLT:.xsl.xslt" in "langmap" option
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-21 17:36:01

我不知道为什么,但这也发生在我身上。我找到了一个我无法解释的解决办法(用户错误?),通过从gtags.conf文件中删除这些行(在用于universal-ctags|setting to use Universal Ctags plug-in parser部分的文件中):

代码语言:javascript
复制
:langmap=Glade\:.glade:\
:langmap=Maven2\:(pom.xml).pom.xml:\
:langmap=PlistXML\:.plist:\
:langmap=RelaxNG\:.rng:\
:langmap=SVG\:.svg:\
:langmap=XSLT\:.xsl.xslt:\

我的猜测是,这个特定版本的Global使用的语言比这个特定版本的Universal目前所支持的语言更多或不同。

我使用的版本是从昨天下载的代码生成的,我看到的版本是:

代码语言:javascript
复制
$ ctags --version
Universal Ctags 0.0.0(6ad4e95), Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Aug 20 2019, 18:04:40
  URL: https://ctags.io/
  Optional compiled features: +wildcards, +regex, +iconv, +option-directory, +packcc
$ gtags --version
gtags (GNU GLOBAL) 6.6.3
Powered by Berkeley DB 1.85.
Copyright (c) 1996-2018 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
票数 1
EN

Stack Overflow用户

发布于 2021-06-08 18:39:46

我也有过类似的问题。问题出在我的通用标签(Ctag)版本上。构建它时,构建过程无法找到libxml 2-0 (*.pc和或头文件,如libxml/xpath.h.h)。因此,一些与XML相关的解析器被禁用在构建之外.这些解析器是在source.mak中定义的:

代码语言:javascript
复制
XML_SRCS = \
    parsers/maven2.c        \
    parsers/dbusintrospect.c    \
    parsers/glade.c         \
    parsers/svg.c           \
    parsers/plist.c         \
    parsers/relaxng.c       \
    parsers/xml.c           \
    parsers/xslt.c          \

现在,当global为ctag生成命令行时,它就像所有解析器都可用一样。当然,ctag不理解其中的一些,并抱怨。

如果可能的话,尝试获得/构建一个启用XML解析器的通用标记的新版本,然后在global中使用它。如果不可能,您需要从命令行删除您的ctag版本不理解的解析器--本质上是bgoodr在他的回答中所建议的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55073452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档