首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的VS C++项目中使用luasocket,从LuaForWindows中查找luasocket.h或为Lua5.2构建LuaSocket

如何在我的VS C++项目中使用luasocket,从LuaForWindows中查找luasocket.h或为Lua5.2构建LuaSocket
EN

Stack Overflow用户
提问于 2013-05-01 23:46:59
回答 1查看 1K关注 0票数 2

我已经使用LuaForWindows安装了Lua5.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的build.bat:

代码语言:javascript
复制
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 undefined,而_luaL_openlib是引用的无法解析的外部符号,但这些都是相关的问题。

我现在不关心我使用的是Lua5.1还是5.2,但是我需要能够使用LuaSocket,那么有没有办法在LuaForWindows (https://code.google.com/p/luaforwindows/)中使用它,或者我的build.bat有问题可以解决我的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-02 01:36:40

(2015年10月2日更新)之前描述的更改已合并到luasocket master branch中,后者在Windows上与Lua5.2一起编译。

(上一版本的答案,不再适用)

如果你想用Lua5.2编译luasocket,你需要使用this branch。它包含VisualStudio的解决方案文件。

我没有用VisualStudio编译过这个分支,但我确实用mingw编译了它,并在Windows上的Lua5.2中使用了它。

下面是我拥有的用于-lwsock32 -lws2_32 -llua的构建标志列表:BUILD_FLAGS="-Wl,-s -O2 -shared -D LUA_COMPAT_MODULE -D IPV6_V6ONLY=27 -D WINVER=0x0501 -s;我还链接了mingw。

在您的例子中,我没有看到LUA_COMPAT_MODULE,它目前是luasocket所需要的,并且在库列表中也没有看到ws2_32

我还遇到了丢失的inet_ntopinet_pton调用,所以我patched luasocket将它们包含进来(不确定这是否也是VS的问题)。您可能希望尝试使用以下分支进行编译:https://github.com/pkulchenko/luasocket/commits/lua52-mingw

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16321493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档