C++嵌入lua腳本

現時遊戲開發裏比較多使用一門服務器開發語言 + 腳本作爲開發,在此僅記錄C++ 嵌入 Lua腳本的過程

環境: Mac, 10.11.6


1. 下載lua-5.x.x,我使用的時候是5.3.3。


2.  新建Xcode 項目


3. 新建完項目後,把下載好的lua-x.x.tar.gz拷貝到項目的目錄下,我這裏的路徑是:/Users/Kelvin/workspace/cpp/testProject/lua_lesson1/lua_lesson1, 解壓


4. 解壓完畢之後,切入lua-5.x.x裏,執行make macosx,生成liblua.a文件

5. 配置路徑:選中project -> Build Settings, 在這裏配置Headers search paths和Library search paths, 注意Headers結尾有個/

   也可以用另一種方式配置:

Headers search paths -> $(SRCROOT)/lua_lesson1/lua-5.3.3/src/

Library search paths -> $(PROJECT_DIR)/lua_lesson1

配置以後顯示的路徑與絕對路徑配置的是一致的結果

 

6.添加liblua.a

7.新建lua文件: File -> new -> other

8.開hello.lua, 寫入測試代碼,經典的hello world

print "Hello World"

9.引入頭lua的lua.hpp文件, 如果沒報錯,證明配置的路徑正確,如果提示找不到lua.hpp,請檢查路徑是否配置錯誤

#include "lua.hpp"

10.在main函數裏寫入代碼,我把main.cpp整個都放上來:

//
//  main.cpp
//  lua_lesson1
//
//  Created by 馮文斌 on 16/9/5.
//  Copyright © 2016年 kelvin. All rights reserved.
//

#include <iostream>
#include "lua.hpp"

int main(int argc, const char * argv[]) {
    
    //1. 初始化Lua虛擬機
    lua_State *lua_state;
    lua_state = luaL_newstate();
    
    //2.設置待註冊的Lua標準庫,這個庫是給你的Lua腳本用的
    //因爲接下來我們只想在Lua腳本里面輸出hello world,所以只引入基本庫就可以了
    static const luaL_Reg lualibs[] =
    {
        { "base", luaopen_base },
        { NULL, NULL}
    };
    
    //3.註冊Lua標準庫並清空棧
    const luaL_Reg *lib = lualibs;
    for(; lib->func != NULL; lib++)
    {
        lib->func(lua_state);
        lua_settop(lua_state, 0);
    }
    
    //4、運行hello.lua腳本
    luaL_dofile(lua_state, "hello.lua");
    
    //5. 關閉Lua虛擬機
    lua_close(lua_state);
    return 0;
}


11. command + R,編譯運行

ok , 運行通過,C++ 嵌入lua腳本的hello world就已經完成了。

參考子龍山人的文章:http://www.cocos.com/doc/tutorial/show?id=1213









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章