2017-10-25 2 views
0

Ich habe Luadist installiert und ein kleines Programm (namens abcd.lua, das auch IUP GUI verwendet) erstellt. Es läuft gut mit Befehl iuplua.exe abcd.lua Ich möchte es einigen anderen Personen geben, um es zu versuchen. Da Lua möglicherweise nicht auf ihrem Computer installiert ist, möchte ich es ihnen mit Luadist-Ordner geben. Ich sehe, dass es eine große Anzahl von Dateien im Luadist-Ordner gibt (1148 um genau zu sein - versucht, sie hier aufzulisten, aber sie übersteigt die Zeichenanzahl). Sie sind in folgenden Ordner:Welche Luadist-Dateien für die Verteilung benötigt werden

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 

Folgende Dateien enthalten ‚iup‘ in ihrem Namen:

./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 

nur, dass diese Datei alongwith meine Programmdatei (abcd.lua) ausreichend sein, um zu geben, obwohl ich glaube, viele DLL-Dateien werden auch benötigt?

Welche Dateien oder Ordner kann ich auswählen oder muss ich alle Dateien für die ordnungsgemäße Ausführung meines Programms geben? Danke für Ihre Hilfe.

Antwort

0

Sie haben ein paar Optionen:

(1) die ausführbare Datei in einen anderen Ordner verschieben und das Skript starten. Es wird mit einer Fehlermeldung über eine fehlende DLL fehlschlagen; Verschieben Sie die DLL in den Ordner mit der ausführbaren Datei und wiederholen Sie den Vorgang. Dies sollte Ihnen eine Liste der Abhängigkeiten geben, vorausgesetzt, dass die Ausführung allen Codepfaden folgt, die externe Module laden.

(2) Verwenden Sie die dependency walker, um alle Abhängigkeiten zu finden, die Ihre ausführbare Datei und ihre DLLs haben. Der Vorteil dieser Methode besteht darin, dass Sie sie ausführen können, ohne Dateien zu verschieben. Außerdem erhalten Sie eine detaillierte Analyse der Abhängigkeiten und ihrer Auflösung auf Ihrem System.

Beachten Sie, dass Sie nicht dieselbe Struktur beibehalten müssen, die LuaDist für die dynamischen Bibliotheken verwendet. Sie können alle DLLs, die Ihr Skript benötigt, neben die ausführbare Datei setzen (und dies ist wahrscheinlich die einfachste und erfolgreichste Konfiguration).

+0

Dependency Walker funktionieren, indem Sie die ausführbare Datei oder DLL für verknüpfte Abhängigkeiten betrachten. Da Lua die Module dynamisch lädt, wird es nicht funktionieren. Es sei denn, Sie öffnen jedes Modul-DLL manuell, um seine Abhängigkeiten zu sehen. –

+0

Dependency Walker funktionieren wird, wie es Profilierung Funktion, die alles Tracks enthält, die durch das Skript geladen wird (das schließt alles dynamisch geladen). –

+0

Hah, OK. Wenn Sie "Profiling starten" ja. –

1

In der IUP-Dokumentation beschreibt jede Bibliothek ihre Abhängigkeiten. Du kannst dort anfangen.

Aber die Antwort hängt davon ab, welche Module Sie verwenden. Wenn das einzige, was Sie tun müssen, "iup" ist, dann ist es ziemlich einfach. Sie benötigen die ausführbare Datei, die Lua-DLL, die IUP-DLL und die IUPLUA-DLL.

+0

Ich denke, ich brauche auch iuplua.exe. Muss ich lua.exe oder irgendeine andere exe einschließen? – rnso

+0

Das ist, was ich meinte, Sie brauchen eine ausführbare Datei. Es kann iuplua.exe oder lua.exe sein, beide funktionieren gleich, wenn eine lua-Datei über die Befehlszeile ausgeführt wird. Sie sind sehr unterschiedlich, wenn sie ohne Parameter ausgeführt werden. –

Verwandte Themen