lua.c:80:31: fatal error: readline/readline.h: No such file or directory
Centos Lua环境安装
curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gzcd lua-5.3.0
make linux test
#make linux test
cd src && make linux
make[1]: Entering directory `/data/lua/lua-5.3.0/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory `/data/lua/lua-5.3.0/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lapi.o lapi.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lcode.o lcode.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lctype.o lctype.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o ldebug.o ldebug.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o ldo.o ldo.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o ldump.o ldump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lfunc.o lfunc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lgc.o lgc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o llex.o llex.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lmem.o lmem.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lobject.o lobject.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lopcodes.o lopcodes.c
lua 中的assert 与loadstring 问题
loadstring 通过加载一个符合lua语言规范的字符串 返回一个lua function,
例如:
local str = "print 'dushiwei.cn'"
local str = loadstring(str)
assert(str)()
local str = "print 'dushiwei.cn'"
local str = loadstring(str)
等价于 local script = function()
print 'dushiwei.cn'
end
标签: lua loadstring assert
Lua编译与运行
Lua是解释性语言,但Lua会首先把代码预编译成中间码然后再执行。不要以为需要编译就不是解释型语言,Lua的编译器是语言运行时的一部分,所以,执行编译产生中间码速度会更快。
dofile/dostring和loadfile/loadstring的区别:
(1)do*会编译并执行;load*只编译代码生成中间码并且返回编译后的chunk作为一个函数,但不执行代码。
(2)load*较为灵活,发生错误时load*会返回nil和错误信息(可以打印出来)。
(3)如果要运行一个文件多次,load*只需要编译一次,但可以多次运行,do*每次都需要编译。
(4)dostring(str)等价于loadstring(str)()
标签: lua loadstring dofile dostring loadfile
lua clone
clone
深度克隆一个值。
格式:
function clone(object)
local lookup_table = {}
local function _copy(object)
if type(object) ~= "table" then
return object
elseif lookup_table[object] then
return lookup_table[object]
end
local new_table = {}
lookup_table[object] = new_table
在window下如何通过protoc-gen-lua导出所需要的lua文件?
在window下如何通过protoc-gen-lua导出所需要的lua文件?
最近在cocos2dx的项目中,需要在LUA脚本层使用protobuf协议。于是开始研究protobuf在LUA下的实现,将完整的过程记录了下来,希望对其它人能有所帮助。
1、下载protoc-gen-lua
可以通过HG从服务器(hg clone https://code.google.com/p/protoc-gen-lua/)上下载最新的版本。
简单介绍一下里面的三个目录:
example 存放的一个示例协议,
Lua 随机数生成问题
lua 随机战斗游戏,每次每次创建玩家的时候属性基本都是一样的,因为使用了math.randomseed
(
os.time
());看完以下文章是math.randomseed()时间间隔太短造成的
Lua 生成随机数需要用到两个函数:
math.randomseed(xx), math.random([n [, m]])
1. math.randomseed(n) 接收一个整数 n 作为随机序列种子。
lua 随机战斗游戏
Lua中的table函数库整理与实践
Lua table库由一些操作table的辅助函数组成。他的主要作用之一是对Lua中array的大小给出一个合理的解释。另外还提供了一些从list中插入删除元素的函数,以及对array元素排序函数。
Lua中是没有array概念的,不过可以通过tabel数据结构实现对array的操作。以下是lua提供的函数,可能版本不同支持的函数也有所不同了
标签: lua table table.setn table.getn table.remove table.sort
linux lua 安装
首先,从Lua的官网(http://www.lua.org/)下载最新发布包(PS:我下载的是lua-5.2.3.tar.gz发布包,以下步骤全部以此版本为示例,请针对自己下载的具体版本作相关修改)。 第一步:wget http://www.lua.org/ftp/lua-5.2.3.tar.gz 其次,使用tar -xzvf /path-to-your-lua-tar-file-folder/lua-5.2.3.tar.gz命令解压缩,将得到一个lua-5.1.4文件夹。Lua math函数
math.pi 为圆周率常量 = 3.14159265358979323846热门日志
分类
- Django(4)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(32)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- about(1)
- git(9)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(2)
- 架构(18)
- Vue(1)
- game(2)
- Html(6)
- Java(8)
- Mysql(37)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(72)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Php(102)
- Windows(8)
- Message(48)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(12)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)