Lua 是一种解释性程序设计语言,也称为脚本语言,在应用程序中实现一些即时编程。可以使用户自己添加一些简单的代码,增加了灵活性。在嵌入式系统中具有广泛的应用。它用于Adobe的Photoshop Lightroom和《魔兽世界》和《愤怒的小鸟》等游戏。实际上,Lua是当前领先的游戏脚本语言。
使用Lua,可以如下两个软件:
lua -Lua 执行程序 ,可以直接执行Lua 代码文件
Luajit -Lua 即时解释器,可以直接执行Lua 代码文件
LuaJIT是采用C语言写的Lua的解释器。LuaJIT被设计成全兼容标准Lua 5.1, 因此LuaJIT代码的语法和标准Lua的语法没多大区别。LuaJIT和Lua的一个区别是,LuaJIT的运行速度比标准Lua快数十倍,可以说是一个lua的高效率版本。网上有人测试说,uajit 大约是 Lua 的 8 倍左右。在某种程度上可以达到和 C 程序差不多的速度。
安装LuaJIT
下载,安装
git clone http://luajit.org/git/luajit-2.0.git
cd luajit-2.0
make
sudo make install
设置环境变量
export LUAJIT_LIB=/usr/local/lib
简单测试
luajit
>print(“hello The world”)
hello The world
>
直接运行lua 代码文件
使用编辑器输入hello.lua
-- hello world lua program
print ("Hello World!")
运行
luajit hello.lua
安装lua 程序
lua 命令程序可以运行lua程序文件.你可以在ubuntu下测试lua 代码.
sudo apt install lua5.1
运行lua 代码文件
lua hello.lua
在C++语言中调用Lua 代码
程序
#include <stdio.h>
#include <luajit-2.0/lua.hpp>
//#include <luajit-2.0/lauxlib.h>
//#include <luajit-2.0/lualib.h>
int main (int argc, char **argv) {
if (argc > 1) {
lua_State *L = luaL_newstate();
luaL_openlibs(L);
luaL_dostring(L, argv[1]);
lua_close(L);
}
else {
fprintf(stderr, "Usage: %s [lua-code]\n", argv[0]);
}
}
编译
g++ test.cpp -l luajit-5.1 -o test
./test ‘print(“hello the world”)’
如果运行时遇到找不到动态库的现象,需要输入如下命令。动态库通常放在 usr/local/lib 中。
sudo ldconfig
结束语
我为什么关心Lua?因为IEC61499 开发项目4DIAC 中使用Lua 作为动态功能块的算法语言。