2011-12-18 22 views
20

में लूआ को एम्बेड करना मैं सी ++ एप्लिकेशन में लुआ को एम्बेड करने का प्रयास कर रहा हूं लेकिन संकलक के बारे में शिकायत करने के बाद से कोई फायदा नहीं हुआ है। मैं लूआ 5.2 का उपयोग कर रहा हूं।सी ++

मुझे लेखों का बहुत कुछ पता चला है कि 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_Alloc() फ़ंक्शन के उदाहरण के साथ यह बहुत उपयोगी स्टैक ओवरफ़्लो उत्तर भी देखें। http://stackoverflow.com/questions/3880798/lua-runs-out-of-memory –

+0

यहां एक दूसरा स्टैक ओवरफ़्लो उत्तर है जो लुआ मेमोरी आवंटन के संबंध में कुछ और विवरण दे रहा है http://stackoverflow.com/questions/11324117/ कैसे करते हैं-आधुनिक VMs-संभाल-स्मृति-आवंटन –

उत्तर

34

संकलित करने के लिए कोशिश कर रहा हूँ है, lua_open समारोह lua 5.2 reference manual

एक lua_Statelua_newstate साथ निर्माण किया है में उल्लेख नहीं किया है, और आप lauxlib.h

से luaL_newstate उपयोग कर सकते हैं

ऐसे प्रश्नों के उत्तर पाने का एक तेज़ तरीका लुआ 5.2 स्रोत कोड (जिसे मैंने अभी किया) में देखना है।