vim용 ctag를 구축하지 못한 이유는 무엇입니까?

vim용 ctag를 구축하지 못한 이유는 무엇입니까?

아직 출시되지 않은 최신 버전을 받았습니다.c태그다음을 사용하여 svn 저장소의 소스 코드

svn co https://ctags.svn.sourceforge.net/svnroot/ctags

를 실행했는데 ./configure다음 오류로 인해 실패했습니다.

config.status: creating Makefile
config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting
config.status: error: cannot find input file: config.h.in
[mirror@home ctags-5.7]$ echo $?
1

그런 다음 이라는 빈 파일을 만들었고 config.h.in이제 ./configure성공했습니다.

configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting
config.status: creating config.h
[mirror@home ctags-5.7]$ echo $?
0

여전히 실행 make에 실패했습니다.

[mirror@home ctags-5.7]$ make
gcc -I. -I. -DHAVE_CONFIG_H -g -O2 -c args.c
In file included from args.c:17:
/usr/include/stdio.h:88: error: two or more data types in declaration specifiers
make: *** [args.o] Error 1
  • 왜 이것이 작동하지 않았습니까?
  • svn 저장소에서 ctag를 어떻게 빌드합니까?

답변1

(준비된 소스 타르볼과 달리) svn 저장소에는 다음에서 사용하는 중간 파일이 포함되어 있지 않기 때문에 실패합니다.자동 도구.

저는 AT나 ctags에 익숙하지 않지만, 다시 실행하기 전에 automake실행 해 보세요 . 절차는 파일이나 문서 폴더 어딘가에 있을 수 있으므로 찾아보고 싶을 수도 있습니다.autoconf./configureINSTALL

부록:

(비공식)에 따르면젠투 이빌드, 달리는 것만 autoreconf으로도 충분합니다.

부록 2:

내가 말했듯이, 나는 AT 전문가가 아닙니다. 세상에 그런 사람은 두 자리 숫자밖에 없다고 들었습니다.

config.h은 사람이 작성한 것이 아니고 저장소의 다른 파일에만 의존하기 때문에 svn 저장소에 포함되지 않습니다. 어쨌든 개발자는 내용을 변경하면서 자주 다시 만들어야 하므로 추가 파일을 다운로드한 다음 변경 사항을 확인할 때 즉시 삭제하면 됩니다.

반면에, 그것은~이다소프트웨어 구축을 덜 고통스럽게 만들기 위해 타르볼에 포함되었습니다. 나는 사람들이 개발자와 다른 버전의 AT를 사용하는 경우에도 일부 문제를 예방할 수 있다고 믿습니다. 이 경우에는 어떤 시스템이나 아키텍처에 의존하지 않고 tarball에서 빌드할 때 다른 파일이 "보통" 수정되지 않기 때문에 실제적인 측면은 없습니다. 즉, 적용해야 할 패치가 없는 경우입니다. 그렇다면 어쨌든 무언가를 재생성해야 할 수도 있습니다.

AT에 대한 나의 접근 방식은 작동할 때까지 또는 포기할 때까지 다양한 것을 시도하는 것입니다. 다른 파일은 다른 명령에서 나오며 일부 명령은 마술처럼 다른 명령을 시작합니다. Wikipedia 페이지에는 순서도가 있습니다. 나는 그것이 도움이 되지 않는다고 생각하지만 아마도 도움이 될 수도 있습니다.

나는 그것을 멀리하는 것이 좋습니다. 자신의 프로젝트에 사용해야 한다고 생각되면 다음을 사용하세요.cmake또는스콘또는 다른 것이 잘 작동하고 그 당시에는 간단합니다.

답변2

내 Linux 시스템에서도 비슷한 문제가 있었는데, "autoheader" 및 "autoconf"(압축을 푼 tarball의 "trunk" 하위 디렉터리에서)를 실행하여 해결했습니다.~ 전에"./configure"를 실행합니다. 후속 "make" 및 "make install" 작업은 문제 없이 실행되었습니다.

autoconf는 (tarball에 있는)configure.at에서 구성을 만드는 방법을 알고 있는 것 같지만, 구성에서 헤더 파일을 생성하는 데 사용되는 .in 파일을 생성하려면 먼저 자동 헤더를 실행해야 합니다. 실제로 ./configure를 실행합니다.

답변3

$ sudo apt-get install exuberant-ctags당신의 Linux 취향에 맞는 무엇이든 해보시지 않겠습니까 ?

관련 정보