我该如何在我的VS C++项目中使用luasocket?可以从LuaForWindows中找到luasocket.h,或者为Lua 5.2构建LuaSocket。
2013-5-1 16:53:5
收藏:0
阅读:168
评论:1
我使用LuaForWindows安装了Lua 5.1,但是我在安装中没有找到luasocket.h文件,所以我似乎无法从我的Visual Studio C++项目中使用它。
因此,我正在尝试构建,我从GitHub获取了Lua 5.2的最新版本,尽管它正在开发中,因为我在sourceforge上找不到Lua 5.1的源代码。
当我转到http://luaforge.net/projects/luasocket/时,它将我带回LuaSocket页面。
所以,我已经构建了Lua 5.2.2,并且这是我的luasocket构建.bat:
set INCLUDE=%INCLUDE%;C:\Users\me\Downloads\lua-5.2.2\src
echo %INCLUDE%
set LIB=%LIB%;C:\Users\me\Downloads\lua-5.2.2\src
echo %LIB%
ren unix.c unix.c00
ren usocket.c usocket.c00
cl /MD /O2 /W3 /c /nologo /DWIN32_LEAN_AND_MEAN *.c
ren mime.obj mime.o
link /DLL /OUT:socket.dll /base:0x67800000 /export:luaopen_socket_core *.obj mime.o msvcrt.lib lua5.2.lib wsock32.lib
link /DLL /OUT:mime.dll /base:0x67700000 /export:luaopen_mime_core mime.o msvcrt.lib lua5.2.lib
最大的问题是尝试编译一些c文件时出现'luaL_openlib未定义',并且'_luaL_openlib'是一个未解决的外部符号引用,但这些是相关问题。
我目前并不关心我使用的是Lua 5.1还是5.2,但我需要能够使用LuaSocket,所以是否有一种方法可以从LuaForWindows(https://code.google.com/p/luaforwindows/)使用它,还是我的build.bat存在问题,可以解决我的问题?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
(2015年10月2日更新)之前描述的更改已合并到luasocket [master分支](https://github.com/diegonehab/luasocket/)中,该分支在Windows上与Lua 5.2编译。
(不再适用的先前版本的答案)
如果你想使用Lua 5.2编译luasocket,你需要使用[这个分支](https://github.com/diegonehab/luasocket/tree/unstable)。它包括一个VisualStudio的解决方案文件。
我没有用VisualStudio编译过这个分支,但是我用mingw编译过它,并在Windows上使用Lua 5.2。
这是我用mingw的构建标志列表:
BUILD_FLAGS="-Wl,-s -O2 -shared -D LUA_COMPAT_MODULE -D IPV6_V6ONLY=27 -D WINVER=0x0501 -s;我还链接了-lwsock32 -lws2_32 -llua。在您的情况下,我没有看到必需的“LUA_COMPAT_MODULE”,它是当前luasocket所必需的,也没有看到“ws2_32”在库列表中。
我还遇到了缺少“inet_ntop”和“inet_pton”调用的问题,因此我[修补了luasocket](https://github.com/pkulchenko/luasocket/commit/5a58786a39bbef7ed4805821cc921f1d40f12068),以包括这些内容(不确定该问题是否也适用于VS)。你可以尝试用这个分支编译:[https://github.com/pkulchenko/luasocket/commits/lua52-mingw](https://github.com/pkulchenko/luasocket/commits/lua52-mingw)。