저만 그러는지 모르겠지만 아래와 같이 cscope 파일을 생성하면
$ make cscope
cscope.files의 내용들이 상대경로로 설정이 됩니다.
문제는 vim에서 키워드를 검색하면 하단에 검색결과 목록은 표시되지만
선택을 하면 해당 파일이 없다는 메시지가 뜹니다.
제가 찾은 해결책은
export KBUILD_SRC="kernel working directory"
한 후, cscope 파일들을 생성하면 절대경로로 설정 되네요..
상대경로일때도 문제없이 동작하는게 맞는것 같은데.. 못찾았습니다. ㅜ.ㅜ
더 간단한 방법이 있으면 공유 부탁드려요~
댓글 5
-
쿨쿨
2013.07.03 16:22
-
K
2013.07.03 17:42
저의 경우에는 .vimrc에 아래와 같이 설정하고 있습니다.
(주석에도 있지만 http://vim.wikia.com/wiki/Autoloading_Cscope_Database 에서 퍼다 쓰는겁니다. ^^)
" Vim will look for cscope.out file everywhere starting from the current directory up to the root " http://vim.wikia.com/wiki/Autoloading_Cscope_Database function! LoadCscope() let db = findfile("cscope.out", ".;") if (!empty(db)) let path = strpart(db, 0, match(db, "/cscope.out$")) set nocscopeverbose " suppress 'duplicate connection' error exe "cs add " . db . " " . path set cscopeverbose endif endfunction call LoadCscope() " Vim will look for tags file everywhere starting from the current directory up to the root set tags=tags;/
맨 마지막줄에 tags 지정도 아시죠?
-
서한배
2013.07.03 22:56
좋은 정보 감사합니다.
gtags도 설정해서 해봐야 겠네요 ^^
-
K
2013.07.03 17:53
-
오시리스
2013.07.04 09:01
gtags를 설치하면 gtags-cscope가 자동적으로 설치됩니다. 인터페이스는 cscope이고 내부적으로 gtags를 쓰는 것이라서, cscope+(vim/emacs) 환경에서 쓸 수 있습니다.
gtags가 파일 단위로도 반영이 가능해서 좋은 점은 있는데, 단점이라면 커널 소스를 제대로 파싱하지 못합니다. 선언할 때, attribute나 macro의 자리 변경 만으로도 검색이 안되더군요. 그래서, 심볼로 검색하면 전혀 나오지 않는 게, 조금 있습니다. 그 부분은 grep으로 해결하는 편입니다.
.
cscope 설정할때 경로도 같이 지정하면 해결되더군요.
.vimrc 에서
이렇게 설정했습니다만, ctags 처럼 vi를 시작한 디렉토리에 있는 cscope 화일을 자동으로 애드하고, 경로까지 설정하진 못하더라고요. 스크립트로 이 문제를 해결한 것을 몇개 봤지만, 저의 경우 적용되지 않았습니다.
말씀하신대로 cscope 화일을 만들때 절대 경로를 포함시키는게 더욱 좋아보입니다.^^
정보 감사합니다.