Lua所提供的机制是C不善于的:高级语言、动态结构、简洁、易于测试和调试等。
正因为如此,Lua具有良好的安全保证,自动内存管理,简便的字符串处理功能及其他动态数据的改变。
Lua不仅是一种易于扩展的语言,也是一种易整合语言(glue language);Lua支持基于组件的,我们可以将一些已经存在的高级组件整合在一起实现一个应用软件。
Lua特有的: ① 可扩展性。Lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域语言的工具(注:比如游戏脚本)。Lua被设计为易于扩展的,可以通过Lua代码或者C代码扩展,Lua的很多功能都是通过外部库来扩展的。Lua很容易与C/C++、java、fortran、Smalltalk、Ada,以及其他语言接口。 ② 简单。Lua本身简单,小巧;内容少但功能强大,这使得Lua易于学习,很容易实现一些小的应用。他的完全发布版(代码、手册以及某些平台的二进制文件)仅用一张软盘就可以装得下。 ③ 高效率。Lua有很高的执行效率,统计表明Lua是目前平均效率最高的脚本语言。 ④ 与平台无关。Lua几乎可以运行在所有我们听说过的系统上,如NextStep、OS/2、PlayStation II (Sony)、Mac OS-9、OS X、BeOS、MS-DOS、IBM mainframes、EPOC、PalmOS、MCF5206eLITE Evaluation Board、RISC OS,及所有的Windows和Unix。Lua不是通过使用条件编译实现平台无关,而是完全使用ANSI (ISO) C,这意味着只要你有ANSI C编译器你就可以编译并使用Lua。
Lua大部分强大的功能来自于他的类库,这并非偶然。Lua的长处之一就是可以通过新类型和函数来扩展其功能。动态类型检查最大限度允许多态出现,并自动简化调用内存管理的接口,因为这样不需要关心谁来分配内存谁来释放内存,也不必担心数据溢出。高级函数和匿名函数均可以接受高级参数,使函数更为通用。
Lua自带一个小规模的类库。在受限系统中使用Lua,如嵌入式系统,我们可以有选择地安装这些类库。若运行环境十分严格,我们甚至可以直接修改类库源代码,仅保留需要的函数。记住:Lua是很小的(即使加上全部的标准库)并且在大部分系统下你仍可以不用担心的使用全部的功能。
Ubuntu 12.04 安装Lua 5.2.3 环境
1. 下载 lua 源码
gao@gao-VirtualBox:/tmp $ curl -R -O http://www.lua.org/ftp/lua-5.2.3.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 245k 100 245k 0 0 8371 0 0:00:30 0:00:30 --:--:-- 192932. 解压
gao@gao-VirtualBox:/tmp $ tar zxvf lua-5.2.3.tar.gz解压过程如下:
lua-5.2.3/ lua-5.2.3/src/ lua-5.2.3/src/liolib.c lua-5.2.3/src/lctype.h lua-5.2.3/src/ltm.h lua-5.2.3/src/ldump.c lua-5.2.3/src/lobject.h lua-5.2.3/src/lopcodes.h lua-5.2.3/src/luac.c lua-5.2.3/src/lbitlib.c lua-5.2.3/src/llimits.h lua-5.2.3/src/luaconf.h lua-5.2.3/src/lgc.h lua-5.2.3/src/lauxlib.c lua-5.2.3/src/lstate.h lua-5.2.3/src/llex.c lua-5.2.3/src/ldblib.c lua-5.2.3/src/lcode.h lua-5.2.3/src/lstate.c lua-5.2.3/src/lua.c lua-5.2.3/src/lzio.c lua-5.2.3/src/lcode.c lua-5.2.3/src/llex.h lua-5.2.3/src/lparser.c lua-5.2.3/src/linit.c lua-5.2.3/src/ldebug.h lua-5.2.3/src/lcorolib.c lua-5.2.3/src/lbaselib.c lua-5.2.3/src/ldebug.c lua-5.2.3/src/lapi.c lua-5.2.3/src/lua.h lua-5.2.3/src/lauxlib.h lua-5.2.3/src/lobject.c lua-5.2.3/src/lstrlib.c lua-5.2.3/src/ltm.c lua-5.2.3/src/ltablib.c lua-5.2.3/src/lualib.h lua-5.2.3/src/lfunc.h lua-5.2.3/src/ldo.c lua-5.2.3/src/lfunc.c lua-5.2.3/src/lctype.c lua-5.2.3/src/lvm.c lua-5.2.3/src/loadlib.c lua-5.2.3/src/ltable.h lua-5.2.3/src/lstring.h lua-5.2.3/src/ltable.c lua-5.2.3/src/lua.hpp lua-5.2.3/src/lopcodes.c lua-5.2.3/src/lapi.h lua-5.2.3/src/lparser.h lua-5.2.3/src/Makefile lua-5.2.3/src/lundump.c lua-5.2.3/src/lmem.h lua-5.2.3/src/lundump.h lua-5.2.3/src/lstring.c lua-5.2.3/src/lmathlib.c lua-5.2.3/src/lvm.h lua-5.2.3/src/lgc.c lua-5.2.3/src/ldo.h lua-5.2.3/src/lzio.h lua-5.2.3/src/loslib.c lua-5.2.3/src/lmem.c lua-5.2.3/README lua-5.2.3/doc/ lua-5.2.3/doc/luac.1 lua-5.2.3/doc/osi-certified-72x60.png lua-5.2.3/doc/manual.css lua-5.2.3/doc/readme.html lua-5.2.3/doc/logo.gif lua-5.2.3/doc/contents.html lua-5.2.3/doc/manual.html lua-5.2.3/doc/lua.1 lua-5.2.3/doc/lua.css lua-5.2.3/Makefile3. 测试编译
gao@gao-VirtualBox:/var/www/Lua$ cd lua-5.2.3/ gao@gao-VirtualBox:/var/www/Lua/lua-5.2.3$ make linux test编译过程如下:
cd src && make linux make[1]: 正在进入目录 `/var/www/Lua/lua-5.2.3/src' make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" make[2]: 正在进入目录 `/var/www/Lua/lua-5.2.3/src' gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lapi.o lapi.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lcode.o lcode.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lctype.o lctype.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o ldebug.o ldebug.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o ldo.o ldo.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o ldump.o ldump.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lfunc.o lfunc.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lgc.o lgc.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o llex.o llex.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lmem.o lmem.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lobject.o lobject.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lopcodes.o lopcodes.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lparser.o lparser.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lstate.o lstate.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lstring.o lstring.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o ltable.o ltable.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o ltm.o ltm.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lundump.o lundump.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lvm.o lvm.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lzio.o lzio.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lauxlib.o lauxlib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lbaselib.o lbaselib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lbitlib.o lbitlib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lcorolib.o lcorolib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o ldblib.o ldblib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o liolib.o liolib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lmathlib.o lmathlib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o loslib.o loslib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lstrlib.o lstrlib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o ltablib.o ltablib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o loadlib.o loadlib.c gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o linit.o linit.c ar rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o ranlib liblua.a gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lua.o lua.c gcc -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o luac.o luac.c gcc -o luac luac.o liblua.a -lm -Wl,-E -ldl -lreadline make[2]:正在离开目录 `/var/www/Lua/lua-5.2.3/src' make[1]:正在离开目录 `/var/www/Lua/lua-5.2.3/src' src/lua -v Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio4. 安装
gao@gao-VirtualBox:/var/www/Lua/lua-5.2.3$ sudo make install [sudo] password for gao: 安装过程如下: cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.2 /usr/local/lib/lua/5.2 cd src && install -p -m 0755 lua luac /usr/local/bin cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /usr/local/include cd src && install -p -m 0644 liblua.a /usr/local/lib cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1
5. 查看lua 版本
gao@gao-VirtualBox:/var/www/Lua/lua-5.2.3$ lua -v Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio安装完成。
启动:nginx sudo /usr/local/openresty/nginx/sbin/nginx 重启: sudo /usr/local/openresty/nginx/sbin/nginx -s restart 停止: sudo /usr/local/openresty/nginx/sbin/nginx -s stop 重新打开: sudo /usr/local/openresty/nginx/sbin/nginx -s reopen 修改了配置文件后重新载入: sudo /usr/local/openresty/nginx/sbin/nginx -s reload \ -c /usr/local/openresty/nginx/conf/nginx.conf \ (指定配置文件) -p /usr/local/openresty/nginx/ (指定前缀路径) 查看帮助: sudo /usr/local/openresty/nginx/sbin/nginx -h nginx version: openresty/1.11.2.3 Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configuration and exit -T : test configuration, dump it and exit -q : suppress non-error messages during configuration testing -s signal : send signal to a master process: stop, quit, reopen, reload -p prefix : set prefix path (default: /usr/local/openresty/nginx/) -c filename : set configuration file (default: conf/nginx.conf) -g directives : set global directives out of configuration file
相关推荐
lua学习笔记
自己学习lua记得笔记,做任务用的~很基础的东西,想要的拿走,免费
### Lua基础学习笔记 #### 一、Lua简介与特点 Lua是一种轻量级且高效的脚本语言,广泛应用于游戏开发、网页应用、图形界面等领域。对于已有其他编程语言基础的学习者来说,掌握Lua通常较为迅速。Lua的设计哲学是...
**lua (VC环境) 学习笔记** 在深入学习lua编程语言并将其应用于Microsoft Visual C++(VC环境)时,我们需要了解几个关键知识点。lua是一种轻量级的脚本语言,设计目标是作为嵌入式语言,使得游戏开发、系统管理、...
Lua是一种轻量级的脚本语言,常用于游戏开发、嵌入式系统和服务器配置等领域。它的设计目标是简洁、高效、可扩展。在“lua基础笔记”中,我们可以探索以下关键知识点: 1. ** Lua语法基础 **:Lua的语法简洁明了,...
【cocos2dx_lua开发笔记】是一篇个人实践总结,主要涵盖了使用cocos2dx_lua进行游戏开发的一些关键点,包括...通过学习和理解这些笔记,开发者能够更好地理解和运用cocos2dx_lua进行游戏场景、UI元素和动画效果的构建。
【Lua学习笔记之表达式】 在Lua编程语言中,表达式是构成程序的基本元素,用于表示计算或逻辑操作。表达式的结果可以是一个值,也可以是一个布尔值,这取决于执行的操作。下面我们将深入探讨Lua中的各种表达式类型...
【Lua (VC环境) 学习笔记】 Lua是一种轻量级的、开源的脚本语言,主要用于嵌入式系统和游戏开发。它以其简洁的语法、高效性和易于集成的特点受到广泛欢迎。在VC(Visual C++)环境中使用Lua,可以为C++应用程序提供...
Lua的table元表自我学习笔记分享。--lua元表总结 --1、__index的运用 (调用table的一个不存在的索引时,会使用到元表的__index元方法,搜索元表是否也有改索引,__index可以是一个函数也可是一个table。)
本文将围绕"Cocos2d-x Lua"这一主题,深入探讨其相关知识点,为新手提供一份全面的学习指南。 一、Cocos2d-x 简介 Cocos2d-x 是一个基于 C++ 的 2D 游戏开发框架,它提供了丰富的图形绘制、动画控制、物理引擎等...
Lua是一种轻量级的脚本语言,常用于游戏开发、嵌入式系统和服务器配置等领域。这个"Lua使用笔记"的压缩包包含了三个文件:hello3.lua、...如果你对 Lua 感兴趣,那么这个"Lua使用笔记"的压缩包将是一个很好的学习起点。
Lua的类型与值的学习笔记为我们提供了对这些基础知识的全面了解,对于Lua新手来说是一份宝贵的资料。通过这些知识点的学习,开发者可以更加有效地编写Lua程序,并在日常开发中避免一些常见错误。
Lua是一种轻量级的嵌入式脚本语言,它的语法简洁且易于学习,而C++则以其强大的性能和灵活性著称。将两者结合可以让我们在C++程序中利用Lua的便利性编写脚本,进行逻辑控制或动态行为。 一、Lua与C++的交互 1. Lua ...
【标题】中的“自我学习笔记--LUA;python:网络编程等”表明这是一份包含LUA和Python语言,特别是关于网络编程的学习资料。LUA和Python都是编程语言,广泛应用于游戏开发、脚本编写、自动化任务以及网络服务等领域。 ...
Lua是一种轻量级的脚本语言,具有易于嵌入到应用程序中、支持面向过程和函数式编程、拥有灵活的变量作用域等特点。本文将介绍Lua中函数的基础用法、变长参数、closure(闭包)、以及select函数的使用,并结合代码...
### Lua基础应用知识点详解 #### 一、Lua简介与特性 ...以上内容覆盖了Lua的基本语法和常用操作,是学习Lua的入门必备知识点。对于从事Unity3D开发或者对Lua感兴趣的朋友来说,掌握这些内容将极大地提高编程效率。
1. **简单易学**: Lua 是一种简洁的、解释型的脚本语言,语法清晰,易于学习和理解。 2. **嵌入式编程**: Lua 以其小巧的体积和高效的设计,常被嵌入到其他应用程序中作为扩展语言。 3. **数据表示**: Lua 有表...
10. **学习笔记的价值**:他人的学习笔记可能包含实践中的经验总结、常见问题的解决方法,对于初学者来说,是一份宝贵的参考资料。 总的来说,这个资源包提供了一个全面的学习路径,涵盖了从基础的Lua语言学习到在...