2011-12-18 2 views
20

저는 컴파일러가 "lua_open"에 대해 불평하고 있기 때문에 루아를 C++ 애플리케이션에 임베드하려고했지만 아무 쓸모가 없습니다. 루아 5.2를 사용하고 있습니다.C++에서 Lua 임베딩

다섯 번째 버전에서 lua_open()이 대체되었지만 무엇으로 언급되지 않았는지 주장하는 기사가 많이 있습니다. 여기

내가 실제로

extern "C" { 
#include "../lua/lua.h" 
#include "../lua/lualib.h" 
#include "../lua/lauxlib.h" 
} 

int main() 
{ 
    int s=0; 

    lua_State *L = lua_open(); 
    // load the libs 
    luaL_openlibs(L); 
    luaL_dofile(L,"example.lua"); 
    printf("\nDone!\n"); 
    lua_close(L); 

    return 0; 
} 
+4

'lua_open'은 5.1 매뉴얼에 이미 없습니다. 이제는 5.2에서 제거 된 호환성을 위해서만 작동했습니다. – lhf

+0

lua_Alloc() 함수의 예제와 lua 문서에 대한 링크가있는이 스택 오버 플로우 응답을 참조하십시오. http://stackoverflow.com/questions/3880798/lua-runs-out-of-memory –

+0

다음은 루아 메모리 할당과 관련하여 몇 가지 세부 정보를 제공하는 두 번째 스택 오버 플로우 응답입니다. http://stackoverflow.com/questions/11324117/ how-do-modern-vms-handle-memory-allocation –

답변

34

를 컴파일하려고 코드의의 lua_open 기능은 lua_Statelua_newstate로 구성되어 lua 5.2 reference manual

에 언급되지 않은, 당신은 lauxlib.h

에서 luaL_newstate을 사용할 수 있습니다

그런 질문에 대한 답을 얻는 더 빠른 방법은 (내가 방금 한) 루아 5.2 소스 코드를 살펴 보는 것입니다.