1、新建一個名為1.lua的檔案,裡面只有一句話print("Hello Lua"),新建一個空的out.lua指令碼檔案
2、開始--執行--cmd
3、luac -o out.lua 1.lua 注: luac -o [編譯後腳本名] [指令碼名],必要時帶上指令碼路徑,如: 回車之後,再開啟out.lua就可以看到編譯好的位元組碼了 然後實驗一下,執行這個位元組碼指令碼,可以看到lua原生的直譯器可以直接解析luac編譯出來的bytecode指令碼,很方便! 重點: 做完了以上的一系列之後,我照著這個方法編譯專案中的指令碼,然後在cocos2dx環境下使用,發現不行!於是又查了一下資料,發現2dx使用的是luajit,lua原生編譯出來的bytecode和luajit是不相容的,所以照著上面方法編譯出來的bytecode指令碼無法在2dx中使用。 解決這個問題其實很簡單,就是用2dx自帶的luajit編譯lua指令碼,下面附上luajit編譯bytecode的方法: 1、在cocos2d-x-2.2.3\scripting\lua\luajit\LuaJIT-2.0.1\src目錄下有個msvcbuild.bat批處理檔案,需要先把luajit.exe這個東西給編譯出來。 2、開啟visual studio的命令列工具,這個只要裝了vs都會有,在安裝目錄裡面可以找到。 3、用vs的命令列工具cd到luajit的src目錄
4、執行msvcbuild.bat批處理檔案,編譯出luajit.exe 編譯完成之後,會在src目錄下生成一系列檔案,其中有一個luajit.exe 接下來就可以使用luajit.exe編譯lua指令碼的bytecode了:luajit -b [指令碼名] [編譯後的指令碼名],執行完後會在src目錄下生成一個已經編譯成bytecode的jit.lua檔案 下面把編譯之後的jit.lua放在2dx中試一下,以HelloLua工程為基礎,把jit.lua放到\samples\Lua\HelloLua\Resources下,修改AppDelegate.cpp中的lua呼叫為std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("jit.lua");
1、新建一個名為1.lua的檔案,裡面只有一句話print("Hello Lua"),新建一個空的out.lua指令碼檔案
2、開始--執行--cmd
3、luac -o out.lua 1.lua 注: luac -o [編譯後腳本名] [指令碼名],必要時帶上指令碼路徑,如: 回車之後,再開啟out.lua就可以看到編譯好的位元組碼了 然後實驗一下,執行這個位元組碼指令碼,可以看到lua原生的直譯器可以直接解析luac編譯出來的bytecode指令碼,很方便! 重點: 做完了以上的一系列之後,我照著這個方法編譯專案中的指令碼,然後在cocos2dx環境下使用,發現不行!於是又查了一下資料,發現2dx使用的是luajit,lua原生編譯出來的bytecode和luajit是不相容的,所以照著上面方法編譯出來的bytecode指令碼無法在2dx中使用。 解決這個問題其實很簡單,就是用2dx自帶的luajit編譯lua指令碼,下面附上luajit編譯bytecode的方法: 1、在cocos2d-x-2.2.3\scripting\lua\luajit\LuaJIT-2.0.1\src目錄下有個msvcbuild.bat批處理檔案,需要先把luajit.exe這個東西給編譯出來。 2、開啟visual studio的命令列工具,這個只要裝了vs都會有,在安裝目錄裡面可以找到。 3、用vs的命令列工具cd到luajit的src目錄
4、執行msvcbuild.bat批處理檔案,編譯出luajit.exe 編譯完成之後,會在src目錄下生成一系列檔案,其中有一個luajit.exe 接下來就可以使用luajit.exe編譯lua指令碼的bytecode了:luajit -b [指令碼名] [編譯後的指令碼名],執行完後會在src目錄下生成一個已經編譯成bytecode的jit.lua檔案 下面把編譯之後的jit.lua放在2dx中試一下,以HelloLua工程為基礎,把jit.lua放到\samples\Lua\HelloLua\Resources下,修改AppDelegate.cpp中的lua呼叫為std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("jit.lua");