您的位置:首页 > 编程语言 > Lua

C++嵌入lua脚本

2016-09-05 14:08 435 查看
现时游戏开发里比较多使用一门服务器开发语言 + 脚本作为开发,在此仅记录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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ lua