分发所需的Luadist文件

时间:2017-10-25 14:01:27

标签: lua iup

我已经安装了Luadist并创建了一个小程序(名为abcd.lua,它也使用IUP GUI)。它运行良好,命令iuplua.exe abcd.lua我想把它交给其他人尝试。由于Lua可能没有安装在他们的计算机上,我想用Luadist文件夹给他们。我看到Luadist文件夹中有大量文件(1148准确地尝试在这里列出它们但它超过了字符数)。它们位于以下文件夹中:

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”:

./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)就足够了,不过我认为还需要很多dll文件吗?

我可以选择提供哪些文件或文件夹,或者我需要提供所有文件才能正常运行我的程序?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

在IUP文档中,每个库都描述了它的依赖关系。你可以从那里开始。

但答案取决于您使用的是哪些模块。如果你做的唯一“要求”是“iup”,那么它很简单。您将需要可执行文件,Lua DLL,IUP DLL和IUPLUA DLL。

答案 1 :(得分:0)

您有几个选择:

(1)将可执行文件移动到另一个文件夹并启动脚本。它将失败,并显示有关缺少DLL的错误消息;将DLL移动到具有可执行文件的文件夹并重复。这应该给你一个依赖项列表,假设执行将遵循加载外部模块的所有代码路径。

(2)使用dependency walker查找可执行文件及其DLL所具有的所有依赖项。此方法的优点是您可以在不移动任何文件的情况下执行它,它将为您提供详细的依赖关系分析以及它们在系统上的解析方式。

请记住,您不需要保留LuaDist与动态库相同的结构;你可以将脚本所需的所有DLL放在可执行文件旁边(这可能是最简单和最成功的配置)。