2013-02-20 3 views
2

내 프로젝트에 Goffice 라이브러리를 사용하기로 결정했습니다. 하지만 C++로 작성하기 때문에 GTK +가 아닌 gtkmm을 사용하는 것처럼 C++ 클래스 인터페이스를 선호합니다.GObject 인트로 피싱과 함께 C++ 바인딩 사용

문서 (위 링크 참조)에 GObject Introspection을 사용할 수 있다고 나와 있습니다. 그래서 나는 그것을 읽지 않았다. 나는 읽고 읽고 읽었으며, 나는 Goffice의 구속력을 사용하는 방법을 이해할 수 없었다. 내 시스템에서 Goffice gi-repository/typelib 파일을 찾고 PackageKit에서 설치된 파일 목록에서 찾았습니다. 아무것도 찾지 못했습니다. goffice 나 goffice-devel 패키지가 gobject 인트로 스펙 션 패키지에 의존하는지 PackageKit에서 확인했습니다. 어쩌면 그들은 간접적으로 의존 할 수도 있지만, 직접적으로 의존하지는 않습니다 (그렇지 않으면 목록에 나타납니다).

시도해 보았지만 Goffice와 같은 GObject로 작성된 라이브러리를 단순히 다른 언어로 사용하는 방법을 설명 할 수있는 리소스를 찾을 수 없습니다. 파이썬, 또는 내 경우에는 C++. 물론 C 함수를 직접 사용할 수도 있지만 핵심은 gtkmm과 비슷한 인터페이스를 원한다는 것입니다.

답변

2

++ 현재 C에 대한 G 객체 반성 도구가 없다 (나는 gtkmm와 GNU 빌드 시스템, g 오피스 버전 0.10와 데스크톱 응용 프로그램을 작성, GNU/리눅스를 사용). https://live.gnome.org/GObjectIntrospection/Users에서 사용자 목록을 볼 수 있습니다. 당신이 $(pkg-config --variable=girdir gobject-introspection-1.0)/GOffice-0.10.gir$(pkg-config --variable=typelibdir gobject-introspection-1.0)/GOffice-0.10.typelib를 수신해야 one of GOffice's automake files을 바탕으로

는 GIR 이름 g 오피스는 g 오피스 - 0.10이지만 배포판의 패키지가 버그를 제출 고려할 수있는 경우 해당 파일을 포함하지 않을 수도 있습니다.

파이썬 용 GObject 인트로 스펙 션을 사용하는 방법에 대한 문서는 PyGObject site을 확인해야합니다. 그것들은 The Python GTK+ 3 Tutorial에 링크되어있어서 PyGObject 사용법을 익힐 수 있습니다. 다른 언어의 경우 설명서는 언어 및 구현에 따라 다릅니다.

+0

네, 그 목록을 보았습니다 ... – cfa45ca55111016ee9269f0a52e771

0

gtkmm, glibmm 및 기타 -mm 라이브러리는 현재 gmmproc 도구를 사용하여 GObject 기반 라이브러리에 대한 바인딩을 생성합니다. 이 도구는 GObject Introspection (GI는 GTK + 3에서 안정된 것으로 간주 됨)보다 오래되었고 C++ 소스 코드를 생성하기 위해 도구에서 사용할 특수 매크로를 사용하여 헤더를 작성하는 수동 작업이 필요합니다. 자세한 내용 및 방법은 Wrapping C Libraries with gmmproc을 참조하십시오.

GObject Introspection을 사용하는 자동 C++ 바인딩 생성의 경우 WIP : gi-mm 중 하나만 발견했습니다.

또는 GObject ConsumeSmoke-GObject이 있으며 Qt 프레임 워크를 통해 GObject와 C++를 통합하는 데 사용할 수 있습니다.