2017-10-25 6 views
0

Luadistをインストールして、IUP GUIを使用するabcd.luaという小さなプログラムを作成しました。それはコマンドでうまくいくiuplua.exe abcd.lua私は試してみるために他の人にそれを与えたい。 Luaは自分のコンピュータにインストールされていない可能性があるので、私はLuadistフォルダを使ってそれらに与えたいと思う。私はLuadistフォルダに多数のファイルがあることを知っています(ここではリストアップしようとしたが、文字数を超えています)。彼らは、以下のフォルダにあります。配布に必要なLuadistファイル

./share/luadist-git/dists/iup-3.6 
./share/luadist-git/dists/iup-3.6/dist.info 
./share/iup 
./share/iup/README 
./share/iup/COPYRIGHT 
./lib/lua/iupluaimglib.dll 
./lib/lua/iuplua.dll 
./lib/lua/iuplua_mglplot.dll 
./lib/lua/iupluacd.dll 
./lib/lua/iupluacontrols.dll 
./lib/lua/iupluagl.dll 
./lib/lua/iuplua_pplot.dll 
./lib/lua/iupluatuio.dll 
./lib/lua/iupluaim.dll 
./bin/libiuptuio.dll 
./bin/libiup_pplot.dll 
./bin/iuplua.exe 
./bin/iupview.exe 
./bin/libiup.dll 
./bin/libiupgl.dll 
./bin/libiupcd.dll 
./bin/libiupim.dll 
./bin/libiupimglib.dll 
./bin/libiup_mglplot.dll 
./bin/libiuplua.dll 
./bin/libiupcontrols.dll 

は私のプログラムファイルを伴って含むだけでこれらのファイルを与えるだろう(abcd.lua)私は思うものの、十分では:以下のファイル

bin : has large number of exe and dll files. 
include: has lauxlib.h luaconf.h lua.h lua.hpp lualib.h 
lib: has liblua.dll.a and its extracted folder and a lua folder with large number of subfolders and files 
share: also has large number of folders and files. 
tmp: only empty cache folder currently 

が自分の名前で「IUP」を含みます多くのdllファイルも必要でしょうか?

私のプログラムを適切に実行するために、すべてのファイルを提供する必要があるかどうかを選択することができますか?ご協力いただきありがとうございます。

答えて

0

あなたはオプションのカップルを持っている:

(1)別のフォルダに実行可能ファイルを移動し、スクリプトを起動します。 DLLが見つからないというエラーメッセージが表示されて失敗します。実行可能ファイルを含むフォルダにDLLを移動し、繰り返します。外部モジュールをロードするすべてのコードパスに実行が続くと仮定すると、依存関係のリストが表示されます。

(2)dependency walkerを使用して、実行可能ファイルとそのDLLが持つすべての依存関係を見つけます。この方法の利点は、ファイルを移動せずに実行できることと、依存関係とそのシステム上の解決方法を詳細に分析できることです。

LuaDistがダイナミックライブラリと同じ構造を保持する必要はありません。スクリプトが実行可能ファイルの隣に必要なすべてのDLLを置くことができます(これは最も簡単で最も成功した設定です)。

+0

依存関係ウォーカーは、リンクされた依存関係の実行可能ファイルまたはDLLを調べることによって動作します。 Luaは動的にモジュールをロードするため、動作しません。各モジュールDLLを手動で開いてその依存関係を確認しない限り、 –

+0

Dependency Walkerは、スクリプトによってロードされたすべてのもの(動的にロードされるものすべてを含む)を追跡するプロファイリング機能を備えているため、機能します。 –

+0

ハハ、OK。 「プロファイリングを開始する」が「はい」のとき –

1

IUPのドキュメントでは、各ライブラリでその依存関係が説明されています。あなたはそこから始めることができます。

しかし、回答は使用しているモジュールによって異なります。あなたが行う必要があるのは "iup"だけであれば、それは非常に簡単です。実行可能ファイル、Lua DLL、IUP DLL、IUPLUA DLLが必要です。

+0

私もiuplua.exeが必要になると思います。 lua.exeやその他のexeを含める必要がありますか? – rnso

+0

それは私が言ったことです、実行可能ファイルが1つ必要です。 iuplua.exeでもlua.exeでも構いませんが、コマンドラインからluaファイルを実行するときにも同じように動作します。パラメータを指定せずに実行すると、それらは非常に異なります。 –

関連する問題