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

·  阅读 660

前言

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

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

Lua 语言支持以下系统

  • Windows
  • Linux
  • Mac OS

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

Snipaste_2021-05-25_13-06-24.png

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

Snipaste_2021-05-25_13-07-42.png

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

Snipaste_2021-05-25_18-51-57.png

Lua 开发包安装

1、Mac电脑上安装
➜  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:

### 此处省略安装过程
brew install lua
复制代码
2、Linux Centos终端上安装
### 查看本机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
复制代码

如果出现以下问题:

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
① 去github上:https://github.com/rjpcomputing/luaforwindows/releases 下载对应版本的lua安装包

② 解压到 D:\5.1

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

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

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

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

复制代码

配置环境变量:

配置环境变量

验证安装是否成功:

验证安装是否成功

Lua 语言开发编辑器选择

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

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

idea编辑器

LUA代码提示插件地址:github.com/EmmyLua/Int…

LUA代码提示插件地址

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

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

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

官方下载地址

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

vscode插件功能列表

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

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编辑器,可以说算是一个神器编辑器,各种各样花里胡哨的样式高亮插件,就是喜欢,就是爱不释手。官方可以免费试用,但是也可以百度谷歌找到破解版使用。

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

官方下载地址

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

官方下载地址

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

  • 1、键盘按 command + shift + p 调出 指令输入框

  • 2、输入 install Package Control,按回车

  • 3、成功安装后,会弹窗出来 ,点确定就行

  • 4、再次使用 command + shift + p,在输入框输入Install Package (第一次输入需要等待链接,几秒钟 )成功后会再次出现输入框,然后输入你想安装的插件,选中,回车,即可安装插件。

command + shift + p

install Package Control

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

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

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

### command + B 运行 如下图
复制代码

执行脚本

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

4、写我们第一个lua脚本程序(来源于我们小伙们满满的爱心💗 💗 💗)
--- 来源于网络上C语言写的
--- lua版本如下
function show_love()
    local i, j, k, l, m
    local text = '' 
    -- 开头空出5行
     for i=1,5 do
        text = text .. "\n"
    end 
    -- 前3行中间有空隙分开来写
    for i = 1, 3, 1 do
        -- 左边的空格,每下一行左边的空格比上一行少2个8*n-2*i 
        for j = 1, 32-2*i do
            text = text.." "
        end
        
        -- 输出左半部分字符小爱心 
        for k = 1, 4 * i + 1 do
            text = text.."*"
        end
 
        -- 中间的空格,每下一行的空格比上一行少4个 
        for l=1, 13-4*i do
            text = text.." "
        end
        
        -- 输出右半部分字符小爱心
        for m=1,4*i+1 do
            text = text.."*"
        end

        -- 每一行输出完毕换行 
        text = text.."\n"
    end

    -- 下3行中间没有空格
    for i = 1, 3 do
        -- 左边的空格 8*(n-1)+1
        for j=1,24+1 do
            text = text.." "
        end

        -- 输出字符小爱心
        for k = 1, 29 do
            text = text.."*"
        end

        -- 每一行输出完毕换行 
        text = text.."\n"
    end

    -- 下7行
    for i=7, 1, -1 do
    
        -- 左边的空格,每下一行左边的空格比上一行少2个 8*(n+1)-2*i
        for j=1,40-2*i do
            text = text.." "
        end

        -- 每下一行的字符小爱心比上一行少4个
        for k=1, 4*i-1 do
            text = text.."*"
        end

        -- 每一行输出完毕换行 
        text = text.."\n"
    end
    
    -- 最后一行左边的空格 
    for i=1,39 do
        text = text.." "
    end
    -- 最后一个字符小爱心 
    text = text.."*\n"

    -- 最后空出5行 
    for i=1,5 do
        text = text.."\n"
    end
    
    return text
end

print(show_love())
复制代码
效果如下
                              *****         *****
                            *********     *********
                          ************* *************
                         *****************************
                         *****************************
                         *****************************
                          ***************************
                            ***********************
                              *******************
                                ***************
                                  ***********
                                    *******
                                      ***
                                       *
复制代码

爱心一击

总结

这一章节很简单,给小伙伴们介绍下linux、mac、windows下安装lua;以及三种常用编辑的安装和lua插件的安装,帮助我们快速开发。有什么问题,小伙伴们可以留言哦!

好了,我是阿沐,谢谢你代码写的这么好,还关注了我!⛽️ ⛽️ ⛽️

分类:
后端
标签: