2013-01-29 1 views
3

클래스/구조체 정의를 찾기 위해 전역으로 가져 오는 데 문제가 있습니다. 나는 cscag가 풍부한 cscope를 찾을 수 있습니다. 모든 태그 파일은 동일한 소스 파일 목록에서 작성됩니다. --prefix 만 지정하여 글로벌 et.al.을 구성하고 구축했습니다. configure가 exhuberant를 찾았으며 사용 중입니다. 저는 수년에 걸쳐 주기적으로 글로벌화를 시도해 왔으며 항상이 문제가있었습니다. 아이디어가 있으십니까?GNU Global 및 GTAGS에서 클래스 정의를 찾을 수 없습니다.

감사 davep는

답변

5

내가 뭘 잘못했는지 발견했습니다. 아마 이것은 누군가를 도울 것입니다.

  1. 혹독한 ctags가 발견되면 그것이 기본 파서가된다는 의미는 아닙니다. 내 전 ctags는 -gtags를 지원하지 않으므로 그 이유가있을 수 있습니다. 제 경우의 기본 파서는 native/builtin입니다.
  2. 네이티브 파서는 .h를 C로만 취급하고 C++ 구문을 찾지 않습니다. 이상하게도 구조체를 찾지 못합니다. 당신이 무성한 ctags를가 있다면, 그것은 기본 수 있도록하는 것입니다,

    1) 최고 :

나는이 수정을 발견했다. 무난한 기본 구성 프로세스는 .h 파일을 제대로 처리합니다. 그렇지 않은 경우, 사용 방법 2. .globalrc에서 변경

default:\ 
    :tc=native: 

to 

default:\ 
    :tc=ctags: 

2) 풍부한 ctags를 편집 .globalrc을 가지고

builtin-parser:\ 
:langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml: 

to 

builtin-parser:\ 
:langmap=c\:.c,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.h.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml: 
에서 내장 파서에 대한 langmap 라인을 변경하지 않으면

즉 .h와 C의 연결을 제거하고 C++과 연결합니다. C .h 파일에 문제가 발생할 수 있습니다. 그렇다면 langmap에 주어진대로 ALL C++ .h 파일을 .hh, .hpp, .hxx 등으로 이름을 바꿔야 할 수 있습니다.

C++에 대한 내 경험에 비추어 볼 때 대부분의 사람들이 여전히 헤더 파일에 .h를 사용하고있는 것처럼 보입니다.

6

그냥이 변수를 내 보내면됩니다. gtags에 대한 설명서 페이지에서 -

관련 문제