2017-11-30 15 views
0

좋아, 그래서, msys2와 제 3 자 라이브러리를 구축하려고 해요 그리고 gtk.h와 같은 몇 가지 헤더 문제가 실행했습니다; 빌드하려고하는 라이브러리는 #include <gtk/gtk.h>을 통해이 라이브러리가 위치 할 것으로 예상합니다.msys2와 헤더가 '틀린'장소

이제 Linux 환경에서 정상적인 Linux 환경에서 문제가 해결되었다고합니다. 그러나 gtk의 경우에는 gtk-3.0/gtk/gtk.h 여야합니다. msys의 오류처럼 보입니다. 일부 설정 단계가 있습니다. msys2 환경? Gentoo의 'eselect'시스템과 마찬가지로, 'gtk-3.0/gtk에 대한 링크 된 디렉토리를 생성하는'pselect gtk-3.0 '과 같은 것을 gtk라고 부릅니다. MSYS2이있다 (

-I/some/path/to/gtk-3.0 

답변

1

당신이 팩맨과 함께 mingw-w64-i686-gtk3 패키지를 설치했다고 가정하고 당신이는 MinGW 32 비트 쉘에서 실행되고 있는지 :

0

당신은 단순히 포함 디렉토리를 찾을 위치를 컴파일러에게 필요 다른 툴체인을 사용하는 쉘의 세 가지 다른 맛), 당신은 GTK3에 필요한 컴파일 플래그를 얻기 위해이 명령을 실행할 수 있습니다

pkg-config gtk+-3.0 --cflags 

대부분의 pkg-config을 호출하기위한 시스템 지원의 어떤 종류를 구축 할 수 있습니다. 기본적으로 의존성에 대한 정보를 얻는 표준 방법입니다.

프로그램을 연결할 때 위의 명령에서 --cflags--libs으로 대체해야합니다.

+0

사실, 그럴 수 있습니다. 그러나, 파일이, 예를 들어, c : \ msys64 \ mingw64 \ include \ gtk-3.0 \ gtk \ gtk.h 일 때, -Ic : \ msys64 \ mingw64 \ include \ gtk-3.0 \ 상태를 갖기에는 다소 지나치게 보인다. c : \ msys64 \ mingw64 \ include \가 이미 경로에 있습니다. – Doug

+0

글쎄, 거친 운. 이것이 완료된 방법입니다. 맘에 들지 않으면, 소스 코드를'#include '로 변경할 수 있습니다. 또는'gtk'에서'gtk-3.0/gtk'까지 심볼릭 링크를 만드십시오. –