tolua官网源码_tolua教程

hacker|
218

文章目录:

如何学习 Lua VM 的源码

2011年底开始阅读Lua代码,选择的版本是5.1.4,在那个时候是最新的版本了,不过2012年不仅有更新的5.1版本出来,还有最新的5.2.暂时管不了这么多,继续看这个版本先了。 历经近一年,中间酸甜苦辣只有自己知道,你问有什么方法,我的回答只有坚持。一边看代码,一看补一些基础(比如看龙书),到最后觉得差不多了就自己抄Lua虚拟机代码来跟踪它的实现。 我的博客上:,有我写的Lua分析文章,还没有完全写完。当然我现在也不认为我完全理解的通通透透了。 我最后希望能做到的是:把Lua某个版本的代码通透看完,在github上写一个开源的分析Lua源码的文档,最后能正确写一份英文的得到Lua社区的认可。 之 所以花这么大功夫去啃Lua代码,是因为我觉得Lua是门很好的语言,参见知乎我在其他帖子中对Lua的评价。另一方面是Lua的代码数量足够 小,5.1.4仅仅1.5W行,去掉空白行和注释估计能到1W行。Lua是世界最流行的脚本语言之一,前几年还进过top20的流行语言,另外又是 C\C++的完美伴侣。另外,我自己对如何实现一门语言也充满了好奇,Lua虽小五脏俱全而且还是正经实用的项目。就这些理由一直在支撑着我看下去。当然 现在最难的时候已经过去了。 其他人的文章,国内云风写的是最多的。不过我认为云风的文章key太高,很难follow,你如果对云风写的文章涉及的技术点没有什么涉猎就直接去看,可能很难看懂。 另外国外人写过的,最推荐的有: 《ANoFrillsIntroToLua51VMInstructions》 《The implementation of Lua 5.0》

cocos2d-x如何与Lua想结合使用 具体点

你好,关于这个问题,你只需要看一下C++如果调用lua就可以了,我给你一些参考,这是我曾经做过的调用测试,如果有问题,共同交流.

C++调用lua函数:

C++编译环境:Code::block 与lua-5.2.1源码包。

下载源码包后,解压,新建控制台工程,添加所有src目录下的代码,将lua.c文件从工程中移除,

然后进行编译,得到库文件(在bin目录下.dll and .a)。

然后将头文件与库文件分开放在二个目录下面。并添加到Code::block编译器中。

linksetting添加.a文件。

包含头文件:#include "lua.hpp"

如果是C工程,请这样写

extern "C" {

#include "lua.h"

#include "lualib.h"

#include "lauxlib.h"

}

连接库文件:.dll文件 和 .a文件

/*

*1.定义Lua的初始化变量

*2.luaL_newstate()初始化lua

*3.luaL_dofile()加载所有的lua库

*4.Lua_getglobal()得到lua文件中的函数名

*5.lua_pushnumber()将参数压入堆栈

*6.lua_call()调用(执行)lua函数

*7.lua_tonumber()得到lua函数的返回值

*8.lua_pop()将结果弹出堆栈,清空堆栈

*9.lua_close()关闭lua

*/

.cpp文件内容如下:

int main ( int argc, char *argv[] )

{

int sum;

lua_State* L;

L = luaL_newstate();

luaL_openlibs(L);

luaL_dofile(L, "abc.lua");

lua_getglobal(L, "add");

lua_pushnumber(L, 10);

lua_pushnumber(L, 10);

lua_call(L, 2, 1);

sum = (int)lua_tonumber(L, -1);

lua_pop(L, 1);

printf( "The sum is %d\n", sum );

lua_close(L);

return 0;

}

.lua文件内容如下:

function add(a, b)

c = a+b

return c

end;

tolua倒闭了吗,官网都打不开了

boolean tag = true;

configure:3527: error: in `/Users/niko/memcachedbuild/libevent-1.4.14-stable':

configure:3531: error: C compiler cannot create executables

See `config.log' for more details.

3条大神的评论

  • avatar
    访客 2022-07-01 下午 05:33:00

    难follow,你如果对云风写的文章涉及的技术点没有什么涉猎就直接去看,可能很难看懂。 另外国外人写过的,最推荐的有: 《ANoFrillsIntroToLua51VMInstructi

  • avatar
    访客 2022-07-02 上午 04:28:41

    ; lua_pushnumber(L, 10); lua_call(L, 2, 1); sum = (int)lua_tonumber(L, -1); lua_pop(L, 1); printf(

  • avatar
    访客 2022-07-01 下午 11:43:23

    oToLua51VMInstructions》 《The implementation of Lua 5.0》cocos2d-x如何与Lua想结合使用 具体点你好,关于这个问题,你只需要看一下C++如果调用lua就可以了,我给你一些参考,这是我曾经做过的调用测试,如果有问题,共同交流.C+

发表评论