Lua-Skript aus C heraus ausführen.

SilverShark

Grünschnabel
Hallo Community.
Ich habe folgendes Problem: Ich möchte eine Lua-Datei, meinetwegen "test.lua", in einem C-Programm ausführen.
Um den C-Code zu kompilieren habe ich mir den Dev-C++ Compiler geladen.
Im Internet habe ich folgenden Code gefunden, der das Skript ausführen soll:
Code:
#include <stdio.h>
#include "lua.h"       /* Kernfunktionen */
#include "lauxlib.h"   /* Hilfsfunktionen */
#include "lualib.h"    /* die Bibliotheken */

int main (int argc, char *argv[])
{
	int result;
	lua_State *L = luaL_newstate();
	luaL_openlibs(L);
	result = (luaL_loadfile(L, "test.lua") || lua_pcall(L, 0, 0, 0));
	if (result){
		fprintf(stderr, "Fehler beim Ausführen des Skripts !\n");
	}
	fprintf (stdout, "Ausgabe von C\n");
	lua_close(L);
	return 0;
}

Als erste Problem trat auf, das die Lua-Dateien nicht eingebunden werden konnten.
Code:
#include "lua.h"       /* Kernfunktionen */
...
Darum habe ich die aktuelle version von Lua heruntergeladen und die src-Dateien in das Verzeichnis des Compilers mit abgelegt.

Jetzt ändert sich die Fehlermeldung und sagt mir die Funktionen "lua_...." wären nicht definiert.
Code:
  [Linker error] undefined reference to `luaL_newstate()' 
  [Linker error] undefined reference to `luaL_openlibs(lua_State*)' 
  [Linker error] undefined reference to `luaL_loadfilex(lua_State*, char const*, char const*)' 
  [Linker error] undefined reference to `lua_pcallk(lua_State*, int, int, int, int, int (*)(lua_State*))' 
  [Linker error] undefined reference to `lua_close(lua_State*)' 
  ld returned 1 exit status 
 ...\Dev-Cpp\Data\Makefile.win [Build Error]  [Projekt1.exe] Error 1

An der Stelle komme ich nicht mehr weiter.
Gefunden habe ich in diesem Forum folgenden Post:
http://www.tutorials.de/c-c/383899-lua-5-2-c-einbinden.html

Auch der hier genannte Code ist Mir bereits bekannt und sorgt für die selben Fehlermeldungen. :(
Ich hoffe ich habe hiermit genügend Informationen gegeben und bekomme Hilfe.
Weitere Fragen beantworte ich natürlich gerne.

Grüße
Silver
 
Hi.

Du müßtest die entsprechende Bibliothek einbinden.

Vermutlich soetwas wie -llua52 bei den Linkeroptionen eintragen - je nachdem wie die Bibliothek heißt.

Diese solltest du bereits heruntergeladen haben... ?
 
Leider bin ich noch relativ neu auf dem Gebiet, deswegen kann ich damit nicht soviel anfangen.
Wie setze ich die Linkeroptionen?
So villeicht?
Code:
#include "lua.h"-llua52
Ich weiss auch nicht genau wie die Bibliothek heisst oder wo ich die finde. :/
Hab nur Header und Sorce-Files.

Edit: Aha mit
Code:
luaL_openlibs
lassen sich anscheinend alle benötigten Bibliotheken öffnen. Allerdings fehlen Mir noch die zu übergebenden Paramter...
 
Zuletzt bearbeitet:
Hi

Linkeroptionen kommen nicht direkt in den Quelltext, sondern
im DevCPP auf Projektoptionen-Parameter-Linker und dort die Libdateien angeben.
(wenn sich da die letzte Zeit nichts geändert hat)

PS: Nachträglich Willkommen bei tutorials.de :)
 
Danke
Du hast Recht, dort lassen sich .lib-Dateien laden.

Jetzt muss ich noch nach dem file suchen.

Edit: In den Dateien die ich Mir heruntergeladen hatte, waren keine .lib's. Aber dann habe ich Mir "Lua for windows" installiert und dort bin ich fündig geworden. Kann aber noch nicht genau sagen ob es sich um das richtige handelt....
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück