2011-12-18 27 views
20

私はC++アプリケーションにluaを埋め込むことを試みてきましたが、コンパイラが "lua_open"について不平を言って以来役に立たない.Lua 5.2を使用しています。C++でのLuaの埋め込み

5番目のバージョンで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

ここでは、2番目のスタックオーバーフローの答えは、いくつかの詳細を与え、LUAのメモリ割り当て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を使用することができます

このような質問への回答を得るより速い方法は、私がやったLua 5.2のソースコードを調べることです。

関連する問題