2017-10-20 11 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 

私は(私のexeファイルの場所にファイルをコピーすることによって)を含む libgio-2.0-0.dllと複数のエラーがライブラリが欠落していたと言って登場してみました。私はそれらのファイルも含めました。エラーが言って表示されます最後に

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に、私が与えたスクリプトのために、私が含める必要がある依存関係は何ですか?

最後に、必要な依存関係をすべて得るためにやっていることより簡単な方法がありますか?

答えて

2

システムは、共有ライブラリを検出できる必要があります。 Linuxシステムでは、これはリンカーを介して行われ、通常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

OKええ、どんな考えですか? – Simon

+0

GTK +パッケージに含まれるファイルを表示するには、 'pacman'パッケージマネージャを使用します。 – liberforce

関連する問題