Tengo el siguiente programa trivial Lua, que he copiado de la programación del libro En Luano se puede vincular un programa Lua mínima
#include <stdio.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
int main (void)
{
char buff[256];
int error;
lua_State *L = luaL_newstate(); /* opens Lua */
luaL_openlibs(L); /* opens the standard libraries */
while (fgets(buff, sizeof(buff), stdin) != NULL)
{
error = luaL_loadbuffer(L, buff, strlen(buff), "line") ||
lua_pcall(L, 0, 0, 0);
if (error)
{
fprintf(stderr, "%s", lua_tostring(L, -1));
lua_pop(L, 1); /* pop error message from the stack */
}
}
lua_close(L);
return 0;
}
mi medio ambiente es cywin
mi archivo de maquillaje se ve así:
CC=gcc
INCLUDE='-I/home/xyz/c_drive/Program Files/Lua/5.1/include'
LINKFLAGS='-L/home/xyz/c_drive/Program Files/Lua/5.1/lib' -llua51
li.o:li.c
$(CC) $(INCLUDE) -c li.c
main:li.o
$(CC) -o main $(LINKFLAGS) li.o
clean:
rm *.o
rm main
Mi/home/xyz C_DRIVE/archivos de programa/Lua/5.1 directorio// lib contiene lua5.1.dll lua5.1.lib lua51.dll y lua51.lib
tratando de construir mi objetivo principal que estoy consiguiendo los errores siguientes:
li.o:li.c:(.text+0x35): undefined reference to `_luaL_newstate'
li.o:li.c:(.text+0x49): undefined reference to `_luaL_openlibs'
li.o:li.c:(.text+0xaf): undefined reference to `_luaL_loadbuffer'
li.o:li.c:(.text+0xd9): undefined reference to `_lua_pcall'
li.o:li.c:(.text+0x120): undefined reference to `_lua_tolstring'
li.o:li.c:(.text+0x154): undefined reference to `_lua_settop'
li.o:li.c:(.text+0x167): undefined reference to `_lua_close'
alguna idea acerca de lo que podría estar haciendo mal aquí?
¿Cómo construiste lua51.lib? Si la lib se compiló con el compilador de C++, entonces tu programa también debería compilarse (y vincularse) con el compilador de C++. – torus
He descargado la versión bin del sitio web de lua ... El compilador que uso es gcc (no g ++) .....Intentaré descargar el código fuente y compilarlo – JohnP
Existen varias versiones binarias diferentes, compiladas con diferentes compiladores. ¿Qué paquete específico obtuviste? – Mud