lua statische Lib
lua statische Lib
Moin,
für ein Projekt benötige ich lua als statische Lib (DLL kommt nicht in Frage). Vor geraumer Zeit gab es hier mal etwas von realsource.de. Leider finde ich auf der Seite nichts mehr dazu.
Kann mir jemand weiterhelfen?
für ein Projekt benötige ich lua als statische Lib (DLL kommt nicht in Frage). Vor geraumer Zeit gab es hier mal etwas von realsource.de. Leider finde ich auf der Seite nichts mehr dazu.
Kann mir jemand weiterhelfen?
Re: lua statische Lib
einfach über
https://www.lua.org/
auf
http://lua-users.org/wiki/LuaBinaries
dann hierhin:
http://luabinaries.sourceforge.net/
und nach ein paar klicks hier hin:
https://sourceforge.net/projects/luabin ... Libraries/
Such dir eine passende Version raus
https://www.lua.org/
auf
http://lua-users.org/wiki/LuaBinaries
dann hierhin:
http://luabinaries.sourceforge.net/
und nach ein paar klicks hier hin:
https://sourceforge.net/projects/luabin ... Libraries/
Such dir eine passende Version raus
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: lua statische Lib
Re: lua statische Lib
Ich habe mir gerade die statische Lib der neusten Lua-Version gezogen. In PureBasic erhalte ich beim Einbinden zahlreiche Linker-Fehler. Liegt dies daran, dass die statische Lib von Lua nicht mit VC++6 kompiliert wurde?
Ich habe auch eine ältere Version von Lua heruntergeladen, da es hierfür eine in VC++6 komplierte statische Bibliothek gibt. Merkwürdigerweise erhalte ich dennoch Linker-Fehler.
Bei der von ts-soft mit VC++6 kompilierten Version von Lua 5.2 scheint es keine Probleme zu geben.
Wie kann das sein?
Ich habe auch eine ältere Version von Lua heruntergeladen, da es hierfür eine in VC++6 komplierte statische Bibliothek gibt. Merkwürdigerweise erhalte ich dennoch Linker-Fehler.
Bei der von ts-soft mit VC++6 kompilierten Version von Lua 5.2 scheint es keine Probleme zu geben.
Wie kann das sein?
Re: lua statische Lib
32/64bit Version?
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: lua statische Lib
Leider sind die Libs abhängig von Standard-Zeug, das von den Compiler-Bibliotheken her kommen. Die werden wohl nicht mitgelinkt, weil das in Hauptprogramm erfolgt.
Ich hab jetzt mal versucht, mit Pelle-C eine LIB zu erzeugen, aber dann fehlen den Linker "__stdo" "__local" und noch eine. Ich hab zwar die Lib in Pelles-C finden können, wo die definiert werden, anschließend lässt sich aber das PB-Programm nicht mehr starten. Ich schätze mal, da beißt sich irgenwas.
Ich vermute, das die Fehler mit der Standard-Ausgabe/Fehlerkanal zu tun hat. Man müsste da alles aus der LUA-Library entfernen, dann könnte es klappen. Aber so gut kenn ich mich in LUA-Sourcecode nicht aus und von den Bibliotheken von Pelle-C hab ich noch weniger Ahnung. Es wäre hilfreich, was die einzelnen Links bedeuten.
Auch praktisch wäre, wenn man wüsste, wie ts-Soft die libs erstellt hat.
Ich hab jetzt mal versucht, mit Pelle-C eine LIB zu erzeugen, aber dann fehlen den Linker "__stdo" "__local" und noch eine. Ich hab zwar die Lib in Pelles-C finden können, wo die definiert werden, anschließend lässt sich aber das PB-Programm nicht mehr starten. Ich schätze mal, da beißt sich irgenwas.
Ich vermute, das die Fehler mit der Standard-Ausgabe/Fehlerkanal zu tun hat. Man müsste da alles aus der LUA-Library entfernen, dann könnte es klappen. Aber so gut kenn ich mich in LUA-Sourcecode nicht aus und von den Bibliotheken von Pelle-C hab ich noch weniger Ahnung. Es wäre hilfreich, was die einzelnen Links bedeuten.
Auch praktisch wäre, wenn man wüsste, wie ts-Soft die libs erstellt hat.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: lua statische Lib
Wieso mit Pelle-C? Du solltest die Lib mit VC++6 kompilieren. Ich werde das demnächst ausprobieren.
Re: lua statische Lib
<hust> sollte?X0r hat geschrieben:Wieso mit Pelle-C? Du solltest die Lib mit VC++6 kompilieren. Ich werde das demnächst ausprobieren.
Ich hab kein VC6++ von daher kann ich da auch rein gar nichts testen. Aber LUA ist strikt in ANSI-C geschrieben und imo der Linker von PB ja von Pelle. Prinzipell geht es ja, es wird eine LIB erzeugt.
Vorallen möchte ich eine 64-Bit LUA. Oder besteht das Problem mit Quads als rückgabewert nur mit Prototypen?
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: lua statische Lib
So, hab es gerade mit VC++6 getestet, hier das Ergebnis:
ts-soft hat lua über die Option /MD kompiliert. Damit wird die VCRT nicht statisch eingebunden...
Ist bei VC++6 wohl kein Problem, da die Laufzeitbibliotheken hierfür auf jedem Windows, zumindest ab Windows XP, vorinstalliert sein sollten.
Kompiliere ich lua über /MT (statisches Linken gegen VCRT), so ergeben sich bei der Nutzung in PureBasic wieder Linker-Fehler:
ts-soft hat lua über die Option /MD kompiliert. Damit wird die VCRT nicht statisch eingebunden...
Ist bei VC++6 wohl kein Problem, da die Laufzeitbibliotheken hierfür auf jedem Windows, zumindest ab Windows XP, vorinstalliert sein sollten.
Kompiliere ich lua über /MT (statisches Linken gegen VCRT), so ergeben sich bei der Nutzung in PureBasic wieder Linker-Fehler:
Letztlich komme ich wohl nicht drum herum, zumindest die VCRT dynamisch und nicht statisch einzubinden.POLINK: error: Unresolved external symbol '___mb_cur_max'.
POLINK: error: Unresolved external symbol '__pctype'.
POLINK: error: Unresolved external symbol '__HUGE'.
POLINK: fatal error: 3 unresolved external(s).
Re: lua statische Lib
Das funktioniert auch ganz gut mit Pelles C. X0r hat aber bereits darauf hingewiesen das es es nur dynamisch funktioniert. Das mag unter VC6 nicht auffallen weil die Bibliotheken eh alle vorhanden sind, bei Pelles C aber nicht, da benoetigst du die Runtime (pocrt64.dll) im Pfad.GPI hat geschrieben:<hust> sollte?X0r hat geschrieben:Wieso mit Pelle-C? Du solltest die Lib mit VC++6 kompilieren. Ich werde das demnächst ausprobieren.
Ich hab kein VC6++ von daher kann ich da auch rein gar nichts testen. Aber LUA ist strikt in ANSI-C geschrieben und imo der Linker von PB ja von Pelle. Prinzipell geht es ja, es wird eine LIB erzeugt.
Vorallen möchte ich eine 64-Bit LUA. Oder besteht das Problem mit Quads als rückgabewert nur mit Prototypen?
Stell die Option auf Multithreaded (DLL) /MD und importiere pocrt64 und crt64
Code: Alles auswählen
Import "lua-534.lib"
luaL_newstate()
luaL_openlibs(L)
luaL_loadstring(L, str.p-utf8)
lua_pcallk(L, n, r, f, c, kf)
lua_tolstring(L, i, len)
lua_tonumberx.d(L,i, *i)
lua_tointegerx.q(L,i, *i)
lua_gettop(L)
EndImport
Macro lua_tostring(L,i)
lua_tolstring(L,i, #Null)
EndMacro
Macro lua_pcall(L,n,r,f)
lua_pcallk(L, n, r, f, 0, #Null)
EndMacro
Macro lua_dostring(L, s )
luaL_loadstring(L, s)
lua_pcall(L, 0, -1, 0)
EndMacro
Import "C:\Program Files\PellesC\Lib\pocrt64.lib"
EndImport
Import "C:\Program Files\PellesC\Lib\crt64.lib"
EndImport
L = luaL_newstate()
luaL_openlibs(L)
lua_dostring(L, "return 1234567890123456789, 333.34443+5,'test lalala'" )
lua_gettop(L)
Debug PeekS(lua_tostring(L,-2), -1, #PB_UTF8)
Debug lua_tointegerx(L, -3, #Null)
Debug lua_tonumberx(L, -2, #Null)
Debug PeekS(lua_tostring(L,-1), -1, #PB_UTF8)