Lua, Luabind, Probleme mit LUA_PATH
-
Hallo,
ich hab das Problem, dass ich zwar den LUA_PATH verändern kann, aber der Interpreter die Dateien trotzdem im falschen Verzeichnis sucht. Ich verstehe das so: Beim "startup" wird packages.path initialisiert, was angibt, wo gesucht wird.
Wenn die Umgebungsvariable LUA_PATH definiert ist (ist sie nicht), wird deren Wert genommen. Amsonsten wird getestet, ob die globale Variable LUA_PATH definiert ist. Das mache ich von C++ aus. Direkt nachdem ich mit lua_open den State erstellt habe, setze ich die globale Variable (erst pushstring, dann setglobal).
Wenn mein erstes Skript ausgeführt wird, hat LUA_PATH zwar den richtigen Wert, packages.path aber den selben wie immer, wurde also nicht von LUA_PATH gesetzt. Leider sehe ich nicht, wie man noch früher (also ohne State) den Pfad setzen kann? Deshalb stehe ich jetzt vor einem Rätsel. Ich kann auch keine Umgebungsvariable definieren, da sich der Pfad erst zur Laufzeit entscheidet.
Für Tipps wäre ich dankbar. Verwende Lua 5.1, Luabind und VC++.
-
Ich hatte auch mal das Problem in der Art, glaube ich.
Die einzige Möglichkeit die ich damals hatte war, lua neu zu kompilieren und das #define LUA_PATH (oder wie das heißt) auf den richtigen Pfad zu setzen.
Alternativ kannst du vielleicht vom Programm selbst die Umgebunsvariable setzen?
-
Ja letzteres wäre die einzig akzeptable Möglichkeit, da ich den Pfad erst zur Laufzeit kenne. Vielleicht jemand noch eine Idee, wie es eleganter geht...