分发需要哪些 Luadist 文件
Which Luadist files needed for distribution
我已经安装了 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 文件?
我可以 select 提供哪些文件或文件夹,或者我需要提供所有文件才能正确 运行 我的程序?感谢您的帮助。
您有两个选择:
(1) 将可执行文件移动到不同的文件夹并启动您的脚本。它会失败并显示有关缺少 DLL 的错误消息;将 DLL 移动到包含可执行文件的文件夹并重复。这应该给你一个依赖列表,假设执行将遵循加载外部模块的所有代码路径。
(2) 使用 dependency walker 查找您的可执行文件及其 DLL 具有的所有依赖项。这种方法的优点是你可以在不移动任何文件的情况下执行它,它会给你一个详细的依赖分析以及它们在你的系统上是如何解决的。
请记住,您不需要为动态库保留与 LuaDist 相同的结构;您可以将脚本所需的所有 DLL 放在可执行文件旁边(这可能是最简单和最成功的配置)。
在 IUP 文档中,每个库都描述了其依赖项。你可以从那里开始。
但答案取决于您使用的是什么模块。如果你做的只是"require"是"iup",那就很简单了。您将需要可执行文件、Lua DLL、IUP DLL 和 IUPLUA DLL。
我已经安装了 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 文件?
我可以 select 提供哪些文件或文件夹,或者我需要提供所有文件才能正确 运行 我的程序?感谢您的帮助。
您有两个选择:
(1) 将可执行文件移动到不同的文件夹并启动您的脚本。它会失败并显示有关缺少 DLL 的错误消息;将 DLL 移动到包含可执行文件的文件夹并重复。这应该给你一个依赖列表,假设执行将遵循加载外部模块的所有代码路径。
(2) 使用 dependency walker 查找您的可执行文件及其 DLL 具有的所有依赖项。这种方法的优点是你可以在不移动任何文件的情况下执行它,它会给你一个详细的依赖分析以及它们在你的系统上是如何解决的。
请记住,您不需要为动态库保留与 LuaDist 相同的结构;您可以将脚本所需的所有 DLL 放在可执行文件旁边(这可能是最简单和最成功的配置)。
在 IUP 文档中,每个库都描述了其依赖项。你可以从那里开始。
但答案取决于您使用的是什么模块。如果你做的只是"require"是"iup",那就很简单了。您将需要可执行文件、Lua DLL、IUP DLL 和 IUPLUA DLL。