【lua语言从青铜到王者】第二篇:开发环境搭建+3种编辑器使用示例

2021-06-30 14:30:18 浏览数 (1)

前言

上一章节我们介绍了lua的前世今生,虽然看的小伙伴并不是很多,同时也并没有上推荐没有流量;大部分觉得没什么营养,其实我个人并不这么认为:“你喜欢一门语言,是不是需要去了解这门语言的由来;作者为什么会创造这门语言?解决了哪些痛病?它自身的优势以及过往历程?”。至少通过翻译外文去了解lua语言的过往,感觉它一路挺不容易的。

Java、Go、Python这些大众语言深受大家喜爱,当然啦,我也很喜欢它们。不过还会坚持利用业余时间记录并实践关于lua的文章。

Lua 语言支持以下系统

  • Windows
  • Linux
  • Mac OS

linux安装包下载地址lua开发包下载地址

windows安装包下载地址windows开发包下载地址

Lua官方推荐的方法使用http://luadist.org/

Lua 开发包安装

1、Mac电脑上安装
代码语言:javascript复制
➜  Desktop mkdir luadir -- 在桌面上创建一个lua安装包文件夹

➜  Desktop cd luadir

➜  luadir curl -R -O http://www.lua.org/ftp/lua-5.4.3.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  349k  100  349k    0     0  35654      0  0:00:10  0:00:10 --:--:-- 48646

➜  luadir tar zxf lua-5.4.3.tar.gz

➜  luadir cd lua-5.4.3

➜  lua-5.4.3 make macosx test
/Library/Developer/CommandLineTools/usr/bin/make all SYSCFLAGS="-DLUA_USE_MACOSX -DLUA_USE_READLINE" SYSLIBS="-lreadline"
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lapi.o lapi.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE   -c lcode.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lctype.o lctype.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o ldebug.o ldebug.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o ldo.o ldo.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o ldump.o ldump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lfunc.o lfunc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lgc.o lgc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE   -c llex.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lmem.o lmem.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lobject.o lobject.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lopcodes.o lopcodes.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE   -c lparser.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lstate.o lstate.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lstring.o lstring.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o ltable.o ltable.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o ltm.o ltm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lundump.o lundump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lvm.o lvm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lzio.o lzio.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lauxlib.o lauxlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lbaselib.o lbaselib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lcorolib.o lcorolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o ldblib.o ldblib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o liolib.o liolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lmathlib.o lmathlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o loadlib.o loadlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o loslib.o loslib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lstrlib.o lstrlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o ltablib.o ltablib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lutf8lib.o lutf8lib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -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 lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
ranlib liblua.a
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o lua.o lua.c
gcc -std=gnu99 -o lua   lua.o liblua.a -lm -lreadline
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_MACOSX -DLUA_USE_READLINE    -c -o luac.o luac.c
gcc -std=gnu99 -o luac   luac.o liblua.a -lm -lreadline
./lua -v
Lua 5.4.3  Copyright (C) 1994-2021 Lua.org, PUC-Rio ### 安装ok

 ### 要用sudo才可以
➜  lua-5.4.3 sudo make install
Password:
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.4 /usr/local/lib/lua/5.4
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

### 安装成功后我们查看下我们的lua版本号
➜  lua-5.4.3 lua -v
Lua 5.4.3  Copyright (C) 1994-2021 Lua.org, PUC-Rio

### 安装前版本号
➜  ~ lua -v
Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio

mac终端还可以通过homebrew来安装lua:

代码语言:javascript复制
### 此处省略安装过程
brew install lua
2、Linux Centos终端上安装
代码语言:javascript复制
### 查看本机lua版本 
[root@localhost ~]# lua -v
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio

### 下载lua最新版本安装包
[root@localhost ~]# curl -R -O http://www.lua.org/ftp/lua-5.4.3.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  349k  100  349k    0     0  18443      0  0:00:19  0:00:19 --:--:-- 10397

### 解压安装包
[root@localhost ~]# tar zxf lua-5.4.3.tar.gz 

### 切换到安装包目录
[root@localhost ~]# cd lua-5.4.3

### 对编译结果进行测试,能检测之前进行的make编译步骤中遗漏的错误,确保服务的编译正常
[root@localhost lua-5.4.3]# make linux test
make[1]: Entering directory `/root/lua-5.4.3/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl"
make[2]: Entering directory `/root/lua-5.4.3/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_LINUX    -c -o lapi.o lapi.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_LINUX   -c lcode.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_LINUX    -c -o lctype.o lctype.c
...........................省略编译部分过程................................................
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_LINUX    -c -o lua.o lua.c
gcc -std=gnu99 -o lua   lua.o liblua.a -lm -Wl,-E -ldl 
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_LINUX    -c -o luac.o luac.c
gcc -std=gnu99 -o luac   luac.o liblua.a -lm -Wl,-E -ldl 
make[2]: Leaving directory `/root/lua-5.4.3/src'
make[1]: Leaving directory `/root/lua-5.4.3/src'
make[1]: Entering directory `/root/lua-5.4.3/src'
./lua -v
Lua 5.4.3  Copyright (C) 1994-2021 Lua.org, PUC-Rio ### 编译ok
make[1]: Leaving directory `/root/lua-5.4.3/src'

### 安装
[root@localhost lua-5.4.3]# make install
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.4 /usr/local/lib/lua/5.4
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

如果出现以下问题:

代码语言:javascript复制
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.4 /usr/local/lib/lua/5.4
mkdir: cannot create directory ‘/usr/local/man/man1’: File exists
make: *** [install] Error 1

## 说明

很明显安装时不能够创建已经存在的文件夹,我们可以删除这个已存在的文件夹 继续执行 make install
3、Window系统上安装 Lua
代码语言:javascript复制
① 去github上:https://github.com/rjpcomputing/luaforwindows/releases 下载对应版本的lua安装包

② 解压到 D:5.1

③ 配置环境变量(看下面图)

④ 输入 Windows R —–> cmd —-> lua 

⑤ 验证安装是否成功(看下面图)

C:Usersamumu>lua
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio

配置环境变量:

配置环境变量

验证安装是否成功:

验证安装是否成功

Lua 语言开发编辑器选择

1、IDEA编辑器工具(以mac电脑为例)

安装成功之后,打开是酱紫的:

idea编辑器

LUA代码提示插件地址:https://github.com/EmmyLua/IntelliJ-EmmyLua

2、VSCode编辑器工具(Visual Studio Code)

微软的产品,一个运行于Mac OS、Windows和Linux之上的工具,功能强大,Lua语言插件数不胜数,还可以支持智能提示,编译运行等功能。

官方下载地址https://code.visualstudio.com/

安装成功以后可以选择安装自己觉得不错的插件:

然后快速的写一个lua脚本运行起来:

代码语言:javascript复制
local tonumber = tonumber

-- 定义一个table数组
local _table = {'大家好!', '我是阿沐童鞋!', '大家可以搜索微信公众号:', '我是阿沐', ';小伙伴们可以关注我哦!'}

-- 循环迭代
local text = ''
for i,v in ipairs(_table) do
   text = text..v
end

print(text) ### 大家好!我是阿沐童鞋!大家可以搜索微信公众号:我是阿沐;小伙伴们可以关注我哦!

VSCode中“Terminal” -> New Terminal,执行lua hello.lua命令直接运行hello.lua脚本,结果如下:

运行结果

3、Sublime Text编辑器工具

以前写php、py语言都用过这个sublime编辑器,可以说算是一个神器编辑器,各种各样花里胡哨的样式高亮插件,就是喜欢,就是爱不释手。官方可以免费试用,但是也可以百度谷歌找到破解版使用。

官方下载地址(貌似需要翻墙访问)https://www.sublimetext.com/

中文版官网:[https://sublimetextcn.com/3/][https://sublimetextcn.com/3/]

安装成功以后;安装Package Control 插件工具中心:

  • 1、键盘按 command shift p 调出 指令输入框
  • 2、输入 install Package Control,按回车
  • 3、成功安装后,会弹窗出来 ,点确定就行
  • 4、再次使用 command shift p,在输入框输入Install Package (第一次输入需要等待链接,几秒钟 )成功后会再次出现输入框,然后输入你想安装的插件,选中,回车,即可安装插件。

写一个lua脚本,执行看结果:

代码语言:javascript复制
-- 循环迭代
local text = '希望小伙伴们多多的关注一下阿沐:谢谢你代码写的这么好,还关注了我!'

print(text) ### 希望小伙伴们多多的关注一下阿沐:谢谢你代码写的这么好,还关注了我!

### command   B 运行 如下图

到此,Lua语言开发环境搭建完毕!

0 人点赞