2017-10-20 30 views
0

MSYS2으로 작성된 simple window 응용 프로그램을 응용 프로그램을 두 번 클릭하여 MSYS2 MinGW 셸 외부에서 실행할 수 있기를 원합니다.그냥 더블 클릭하여 MSYS2로 만든 GTK + 응용 프로그램을 실행하십시오.

문제는 응용 프로그램을 실행하려고 할 때 MSYS MinGW 프롬프트가 표시되지 않으면 오류가 반환된다는 것입니다.

The code execution cannot proceed because libgio-2.0-0.dll was not found. Reinstalling the program may fix this problem 

나는 libgio-2.0-0.dll 더 많은 오류가 라이브러리가 누락 된 말 나타났다 (내 EXE의 위치에 파일을 복사하여)을 포함했습니다. 나는 그 파일들도 포함시켰다. 오류가 말하는 나타납니다 결국

libffi-6.dll 
libgdk-3-0.dll 
libglib-2.0-0.dll 
libgmodule-2.0-0.dll 
libgtk-3-0.dll 
libgobject-2.0-0.dll 
libgio-2.0-0.dll 
libatk-1.0-0.dll 
libcairo-gobject-2.dll 
libcairo-2.dll 
libepoxy-0.dll 
libpcre-1.dll 
libwinpthread-1.dll 
libgdk_pixbuf-2.0-0.dll 
libpango-1.0-0.dll 

: 특정 오류 코드가 잘못된 이미지 형식을 의미

The application was unable to start correctly (0xc000007b). Click OK to close the application. 

I found what the error message means:

그건 내가 내가 아래에 포함 파일을 보여 주었다. 그러나 오류 코드는 일반적으로 64 비트 Windows 운영 체제에서 작동하지만 32 비트 OS 만 사용하는 프로그램을 실행하려고한다는 것을 의미합니다.

그러나 x64 컴퓨터를 실행하는 데 도움이되지 않습니다. DLL은 exe뿐만 아니라 x64입니다.

www.gtk.org에 따르면 GTK +는 일부 라이브러리에 의존하고 있으며 위에서 수행 한 것과는 별개로 모든 솔루션을 생각할 수 없으며 MSYS 프롬프트를 통해 실행하지 않도록 종속성에 대한 문서를 찾을 수 없습니다.

그래서 내 창을 작동 시키려면 어떻게해야합니까? 응용 프로그램은 괜찮습니다 종속성에 문제가 있습니다.

두 번째로 내가 포함해야하는 종속성은 무엇입니까? (또는 어떤 경우에 내 창에 문제가 있습니까?) 내가 제공 한 스크립트에 대한 종속성은 무엇입니까?

그리고 마지막으로 필요한 모든 종속성을 얻으려고하는 것보다 쉬운 방법이 있습니까?

답변

2

시스템에서 공유 라이브러리를 찾을 수 있어야합니다. 리눅스 시스템에서 이것은 보통 링커를 통해 이루어지며 보통 ld입니다. 구성을 찾을 위치는 /etc/ld.so.conf/etc/ld.so.conf.d입니다.

이제 Windows에서는 존재하지 않습니다. 그래서 환경 변수 PATH이 일반적으로 그 용도로 사용되며 설치 프로그램에서 수정되는 경우가 있습니다. 그러나 모든 프로그램에 대해 PATH을 변경하는 것은 성가 시며 재배치를 금지합니다 (전체 앱 디렉토리를 이동하고 다른 곳에서 앱을 실행하는 것). 따라서 빈 디렉토리를 만들고 그것에 bin 디렉토리를 만들고 응용 프로그램 바이너리와 GTK + 라이브러리를 복사하십시오. Windows의 경우 the current directory is searched before the PATH variable이므로 제대로 작동합니다.

그래서 당신이 한 것은 정확합니다. 가지고있는 문제는 앱 재배포와 비슷합니다. 다른 컴퓨터에 소프트웨어를 배포하는 데 필요한 비트를 수집합니다. 이것은 유감스럽게도 GTK + 웹 사이트에서 가장 문서화 된 부분은 아닙니다. GtkApplication 클래스를 사용하지 않는 응용 프로그램을 사용해 보셨습니까?

+0

실험으로 나는'bin' 폴더의 모든 내용을 내 응용 프로그램과 함께 복사했습니다. 더블 클릭하면 창이 열립니다. 콘솔 화면에 오류 메시지가 나타나지만 창이 열렸습니다. 그럼 모든 exe를 제거하고 여전히 일했습니다. 그리고 위에서 언급 한 것들을 제외한 모든 dll. 그것은 같은 오류를 반환했습니다. 이것은 dll이 없다고 믿게 만듭니다. 또한 '아이콘을 찾을 수 없습니다'라는 오류가 있습니다. window-minimize-symbolic-ltr. hicolor 테마'어떤 생각이 어떻게 해결할 수 있습니까? – Simon

+0

좋아요, DLL이 누락되었습니다. – Simon

+0

'pacman' 패키지 관리자를 사용하여 GTK + 패키지에 포함 된 파일을 나열하십시오. – liberforce