2013-10-25 51 views
3

我用luac編譯我的lua代碼。 luac版本是5.2.2,我的應用程序原生lua是5.2.2。luac.out:不兼容的預編譯塊

我Lua代碼

function hello() 
    print("hello test luac ") 
end 

hello() 

的預編譯代碼:

 
1b4c 7561 5200 0104 0804 0800 1993 0d0a 
1a0a 0000 0000 0000 0000 0001 0205 0000 
0025 0000 0008 0000 8006 0040 001d 4080 
001f 0080 0001 0000 0004 0600 0000 0000 
0000 6865 6c6c 6f00 0100 0000 0100 0000 
0300 0000 0000 0204 0000 0006 0040 0041 
4000 001d 4000 011f 0080 0002 0000 0004 
0600 0000 0000 0000 7072 696e 7400 0411 
0000 0000 0000 0068 656c 6c6f 2074 6573 
7420 6c75 6163 2000 0000 0000 0100 0000 
0000 5b00 0000 0000 0000 402f 5573 6572 
732f 7269 6b2f 4465 736b 746f 702f 6361 
7264 4761 6d65 2f63 6c69 656e 742f 4361 
7264 5265 6c65 6173 652f 7376 6e2e 7368 
2f41 7373 6574 732f 5374 7265 616d 696e 
6741 7373 6574 732f 4c75 612f 5465 7374 
2e6c 7561 0004 0000 0002 0000 0002 0000 
0002 0000 0003 0000 0000 0000 0001 0000 
0005 0000 0000 0000 005f 454e 5600 0100 
0000 0100 5b00 0000 0000 0000 402f 5573 
6572 732f 7269 6b2f 4465 736b 746f 702f 
6361 7264 4761 6d65 2f63 6c69 656e 742f 
4361 7264 5265 6c65 6173 652f 7376 6e2e 
7368 2f41 7373 6574 732f 5374 7265 616d 
696e 6741 7373 6574 732f 4c75 612f 5465 
7374 2e6c 7561 0005 0000 0003 0000 0001 
0000 0005 0000 0005 0000 0005 0000 0000 
0000 0001 0000 0005 0000 0000 0000 005f 
454e 5600 

當我dofile預編譯的代碼,我得到的錯誤是這樣的:

 
LuaScriptException: /Users/rik/Desktop/cardGame/client/CardRelease/svn.sh/Assets/StreamingAssets/Lua/luac.out: incompatible precompiled chunk 
NLua.Lua.ThrowExceptionFromError (Int32 oldTop) 
NLua.Lua.DoFile (System.String fileName) 

我怎麼能使用預編譯LUA代碼在我的應用程序?

回答

3

您已預編譯Lua腳本的平臺以及您嘗試加載它的平臺不兼容,因爲它們具有不同的字大小或字節順序。 Lua字節碼在架構中不可移植。

+0

是的,我更改爲luac 32位它的工作原理 –