[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Statically linking luasocket
- From: Issac Trotts <issac.trotts@...>
- Date: Wed, 19 Oct 2005 22:59:01 -0700
Hi all,
The installation instructions for luasocket describe how to install it
as a dynamic library. For my application, it would be preferable
to just compile luasocket in statically, but this only half
working. I had to change a couple of headers:
--- mime.h 2005-01-15 14:52:38.000000000 -0800
+++ mime.h.new 2005-10-19 22:35:46.000000000 -0700
@@ -19,6 +19,6 @@
#define MIME_API extern
#endif
-MIME_API int luaopen_mime(lua_State *L);
+MIME_API int luaopen_lmime(lua_State *L);
#endif /* MIME_H */
--- luasocket.h 2005-01-15 14:52:38.000000000 -0800
+++ luasocket.h.new 2005-10-19 22:34:54.000000000 -0700
@@ -27,6 +27,6 @@
/*---------------------------
----------------------------------------------*\
* Initializes the library.
\*-------------------------------------------------------------------------*/
-LUASOCKET_API int luaopen_socket(lua_State *L);
+LUASOCKET_API int luaopen_lsocket(lua_State *L);
#endif /* LUASOCKET_H */
So now it compiles, but here's where I'm stuck. I added these lines to my lualibs array:
{"lsocket",luaopen_lsocket},
{"lmime", luaopen_lmime},
however when I run the program, lsocket and lmime are both nil, but socket and mime are defined:
lua> print(lsocket)
nil
lua> print(lmime)
nil
lua> table.foreach(socket,print)
protect function: 0x2153ab0
dns table: 0x2153c70
gettime function: 0x2153ac0
udp function: 0x2154b30
newtry function: 0x2153760
__unload function: 0x2153af0
VERSION LuaSocket 2.0 (beta3)
select function: 0x2154b40
tcp function: 0x21544a0
skip function: 0x21536e0
sleep function: 0x21537b0
lua> table.foreach(mime,print)
unqp function: 0x2155470
eol function: 0x2155310
unb64 function: 0x2153a60
wrp function: 0x21554a0
dot function: 0x21546d0
b64 function: 0x2155270
qpwrp function: 0x2153a50
qp function: 0x2155340
The socket table here is incomplete though. In particular, the
try() function is missing from `socket', so I can't use the http
module. So, why did it rename lsocket to socket? Is there a
recommended way to statically link with luasocket?
Thanks,
Issac