在xcode上编译lua

来源:互联网 发布:windows phone 流畅 编辑:程序博客网 时间:2024/05/17 03:33

最近想学习一下Lua,虽然有那么多关于Lua的IDE,但是放着强大的xcode的不用,实在难受。网上搜到的教程就两种,那个出镜率最高的还不大好使。后来在Google上搜到一篇子龙山人的Lua教程,于是按这个来做,捣鼓一晚上没弄好。今天又按照错误信息搜了一下,想出一个新的解决方法。
下文中必须操作我都加粗了。ps:我的xcode是6.2版本。

1.准备工作

首先,新建一个控制台应用程序。 打开Xcode,New->Project->OSX->Command Line Tool,取名为Lesson01如下图所示:(名字什么的和子龙山人前辈的教程保持一致)
就是这个了
接下来下载Lua-5.3.0,貌似需要翻墙,翻不了的点击这里下载。

然后,解压缩,然后cd到刚刚解压缩的路径下面,输入make macosx,这样便可以生成Mac下面的lib文件了。

接下来把刚刚解压缩的文件夹拷贝到你新建的工程下面,我在这个根目录,如下图。这里写图片描述
其中liblua.a是从lua-5.3.0文件夹里拷贝出来的。

然后设置include路径和library路径。
这里写图片描述
Header Search Pathes就是头文件所在路径,我直接把lua-5.3.0文件夹里src文件夹的绝对路径写上了,至于那个相对路径写法$(SRCROOT)试了几次没找对。

//Header Search Pathes/Users/xueyuan/Documents/Lesson01/lua-5.3.0/src/

Library Search Pathes 是链接库路径,我们的链接库就是那个拷贝出来的liblua.a文件,把它的绝对地址写上就行了,

//Library Search Pathes/Users/xueyuan/Documents/Lesson01/

又或者写成相对路径,这个找对了。。。(其实就是工程根目录)

//Library Search Pathes$(PROJECT_DIR)/

至此,子龙山人前辈的教程中设置就完成了……但是,运行会出错啊!这里写图片描述
或许是osx和xcode都升级的原因吧,得把那个库文件填进去。

添加库文件,如图
这里写图片描述
看见第三栏了没?就那个Link Binary With Libraries,点击那个+,然后左下角有个Add Other,找到那个之前拷贝出来的liblua.a,就是它,添加进去。
这次运行成功了(不成功的就把main.cpp的头文件删掉,main()函数里留一个return 0;就可以了),尽管现在和lua没什么关系。

2. C++调用Lua文件

现在开始调用lua文件了。
首先,打开main.cpp,并包含以下头文件

#include "lua.hpp"

如果此时编译不报错,则说明之前设置的Header Search Pathes是正确的,如果报错,请自行调整(按我的步骤一般不会有错)。

然后在main函数里面添加以下内容

int main(int argc, const char * argv[]) {    // insert code here...    //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++)    {        luaL_requiref(lua_state, lib->name, lib->func, 1);        lua_pop(lua_state, 1);    }    //4、运行hello.lua脚本    luaL_dofile(lua_state, "hello.lua");    //5. 关闭Lua虚拟机    lua_close(lua_state);    return 0;}

3. 新建lua文件

选择New->File->Other,然后命名为hello.lua, 以下是hello.lua里面的内容:

print "啊啊啊啊啊"

运行会成功,但是显示不出来。

接下来还要调整点东西,如图(直接盗图了,xcode6.2在这里没啥变化)
这里写图片描述
运行,大功告成了。

0 0
原创粉丝点击