C++ 라이브러리용 geany .tags 파일을 만드는 방법은 무엇입니까?

C++ 라이브러리용 geany .tags 파일을 만드는 방법은 무엇입니까?

geany 텍스트 편집기(아니요, IDE가 아닙니다)에 자동 완성 기능이 있었으면 좋겠고 이를 위해 .tags 파일을 사용할 수 있습니다. 귀하의 프로그램에 대한 .tags 파일을 생성할 수 있는 플러그인이 있지만 외부 C++ 라이브러리(더 구체적으로 SFML)용 플러그인을 만들어야 합니다. 목표는 "sf::"를 입력할 때 가능한 모든 클래스를 표시하고 해당 클래스를 입력할 때 해당 클래스의 메서드를 표시하도록 하는 것입니다. 이렇게 하면 많이 검색하지 않고도 SFML을 더 빨리 배울 수 있기 때문에 이것은 큰 일이 될 것입니다. 감사해요.

답변1

글쎄, 해결책을 찾았습니다. 내 폴더에서 몇 가지 검색을 수행하고 몇 가지 Geany 문서를 읽은 후 라이브러리용 .tags 파일을 생성하는 다음 단계를 알아낼 수 있었습니다.

  • /usr/include/로 이동하여 라이브러리를 검색하세요. 내 경우에는 SFML이라 SFML 폴더를 찾아서 거기에 관련된 파일들을 다 봤다.
  • 마.pkg-config --list-all | grep <library name> 이를 통해 pkg-config에서 라이브러리가 어떻게 참조되는지 확인할 수 있습니다. "sfml"을 검색한 결과 모든 모듈을 포함하려면 "sfml-all"을 사용해야 한다는 것을 알았습니다.
  • 수집한 정보를 사용하여 다음 명령을 실행하여 .tags 파일을 생성하고 필요한 위치를 바꿉니다.CFLAGS=`pkg-config --cflags <pkg library name>` geany -gP path/to/save/tagfile/something.cpp.tags path/to/library/headers

그러면 태그 파일이 생성됩니다. 그런 다음 $HOME/.config/geany/tags에 저장하거나 도구->태그 로드 파일을 사용하여 GUI를 통해 가져와서 geany로 가져와야 합니다.

예를 들어 SFML에 사용하는 명령은 다음과 같습니다.

CFLAGS=`pkg-config --cflags sfml-all` geany -gP /home/username/sfml.cpp.tags /usr/include/SFML/*/*.hpp

*를 사용하여 "SFML"의 모든 폴더를 포함시킨 다음 와일드카드를 사용하여 .hpp로 끝나는 모든 파일을 지정하여 모든 헤더 파일을 포함하게 된 방법을 확인하세요.

관련 정보