[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Compiling simple C application with embedded Lua
- From: Martin Hurton <martin.hurton@...>
- Date: Tue, 30 Jun 2009 09:48:58 +0200
On Sun, Jun 28, 2009 at 07:44:43PM +0200, František Fuka wrote:
> Hello,
>
> I am running Ubuntu Linux and I wish to compile an application which only
> has a few lines of C and most of it is in Lua.
>
> Although I am rather proficient in Lua, I am not proficient in C compiling
> and linking. I downloaded the Lua sources from the official site and then I
> tried the example from page 219 in PiL book:
>
> #include <stdio.h>
> #include "lua.h"
> #include "lauxlib.h"
> #include "lualib.h"
>
> int main (void) {
> char buff[256];
> int error;
> lua_State *L = lua_open(); /* opens Lua */
> luaL_openlibs(L);
> 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;
> }
>
> Then I tried compiling this with "gcc -I../lib/lua-5.1.4/src main.c -o
> emulator" and got the following errors:
If you have the liblua5.1-0-dev package installed, you can use the
following command:
gcc main.c -o emulator `pkg-config --cflags --libs lua5.1`
Martin
>
> main.c: In function ‘main’:
> main.c:12: warning: incompatible implicit declaration of built-in function
> ‘strlen’
> /tmp/ccsb4CUD.o: In function `main':
> main.c:(.text+0x21): undefined reference to `luaL_newstate'
> main.c:(.text+0x35): undefined reference to `luaL_openlibs'
> main.c:(.text+0x6c): undefined reference to `luaL_loadbuffer'
> main.c:(.text+0x96): undefined reference to `lua_pcall'
> main.c:(.text+0xe9): undefined reference to `lua_tolstring'
> main.c:(.text+0x10b): undefined reference to `lua_settop'
> main.c:(.text+0x140): undefined reference to `lua_close'
> collect2: ld returned 1 exit status
>
> Now, I am not sure if this is some deeper problem or if I made some very
> basic mistake (again, I don't understand C compiling very much, I do most of
> my stuff in pure Lua) but it seems to me those "undefined" symbols are
> defined in ".h" files in lua-5.1.4/src/ directory.
>
> Could you please enlighten me what command line options to create
> stand-alone executable from the example at page 219 using only the original
> Lua sources (not any pre-compiled libraries, it must be completely
> self-sufficient). Thank you very much.
>
> --
> Frantisek Fuka
> (yes, that IS my real name)
> (and it's pronounced "Fran-tjee-shek Foo-kah")
>
> Jabber/GoogleTalk ID: fuka@fuxoft.cz
> Homepage: http://www.fuxoft.cz