2013-05-01 3 views
1

LuaForWindows를 사용하여 Lua 5.1을 설치했지만 설치되어있는 luasocket.h가 표시되지 않습니다. Visual Studio C++ 프로젝트에서 사용할 수없는 것으로 보입니다.내 VS C++ 프로젝트에서 luasocket을 어떻게 사용합니까? LuaForWindows의 luasocket.h를 찾거나 Lua 5.2 용 LuaSocket을 빌드합니다.

그래서 루아 5.2에 대한 github에서 최신 버전을 구할 수 있습니다. 소스 포지에서 루아 5.1에 대한 소스를 찾을 수 없기 때문에 개발 중입니다.

http://luaforge.net/projects/luasocket/으로 가면 LuaSocket 페이지로 돌아옵니다.

그래서, 루아 5.2.2 구축 및이 luasocket 내 경우 build.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 undefined가 나타날 것입니다 참조 된 미해결 외부 기호가 있지만 관련 문제입니다.

현재 Lua 5.1 또는 5.2를 사용하고 있어도 상관하지 않지만 LuaSocket을 사용할 수 있어야하므로 LuaForWindows (https://code.google.com/p/luaforwindows/)에서 사용하거나 내 빌드에 문제가있는 것입니다. 내 문제를 해결할 박쥐?

+0

어떻게 LuaSocket을 사용합니까? ** clibs \ socket \\'** 디렉토리에 DLL이 있습니다. – hjpotter92

+0

@ hjpotter92 - 내 C++ 프로그램에서 luasocket.h를 포함하려고 시도했지만 찾지 못했습니다. DLL에서 헤더 파일을 해석 할 수 있는지 살펴 보겠다.하지만 의심 스럽다. –

답변

2

(2015 년 10 월 업데이트) 이전에 설명한 변경 사항은 Windows의 Lua 5.2로 컴파일되는 luasocket master branch으로 병합되었습니다.

(더 이상 적용 대답, 이전 버전)

당신은 당신이 루아 5.2 luasocket을 컴파일하려면 this branch를 사용해야합니다. 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와 연결됩니다.

귀하의 경우에는 현재 luasocket에서 필요로하는 LUA_COMPAT_MODULE이 보이지 않으며 라이브러리 목록에 ws2_32도 표시되지 않습니다.

나는 또한 inet_ntopinet_pton 전화를 걸었으므로, 나는이 두 가지를 포함하도록 patched luasocket (이 문제가 VS인지 여부는 확실하지 않음)을 포함합니다. 이 브랜치로 컴파일하려고 할 수도 있습니다 : https://github.com/pkulchenko/luasocket/commits/lua52-mingw.

+0

처음부터 다시 빌드하려고 할 때 문제가있는 지점을 사용했습니다. –

+0

변경 사항이 불안정한 지점에있을 때 어떤 생각이 있으십니까? –

+0

@JamesBlack, 불행히도, 잘 모르겠다. 당겨 받기 요청을 보내 겠지만, Diego가 새 버전을 병합하고 릴리스하는 것은 최종 결정입니다. –

관련 문제