1

我已经安装了 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 文件?

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

4

2 回答 2

1

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

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

于 2017-10-25T18:05:44.907 回答
0

你有几个选择:

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

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

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

于 2017-10-25T17:58:44.420 回答