【LuaJIT版】從零開始在 macOS 上配置 Lua 開發環境 原 薦

前言

這篇文章針對的是基於 LuaJIT 的環境配置。藉助於 LuaJIT,Lua 的執行效率可以進一步提升幾十倍。如果你不是很清楚自己是需要 Lua 還是 LuaJIT,那麼建議你從 LuaJIT 起步。LuaJIT 對應的是 Lua5.1 的語法,這一點需要注意。

如果你想看基於最新版 Lua 環境的配置文章,請移步:http://yanfeng.life/2017/11/10/Latest-guid-for-lua/

腳本語言,你可能更需要的是 Lua

不同的腳本語言有不同的特性,第一接觸的腳本語言,可能會影響自己對整個腳本語言的理解和認知。我以前接觸最多的腳本語言是 JavaScript。後果就是:我一度以爲腳本語言都是必須和宿主語言運行在不同的進程;腳本本身的語法受環境的影響很大,很難做到統一;如果想統一寫法,都需要在應用體積上做出非常大的妥協(嵌入一個通用的 JS 解釋器,會使應用體積增大十幾 M)。

我在試着做一些努力,去改進因大量使用 JavaScript 引起的一些特定的技術問題。但是偶然間又想起了 Lua。最開始是從玩 WOW 的室友那裏聽說 Lua 的。因爲他說寫WOW插件很賺錢,所以曾經認真地搜索過 Lua,現在腦海中有一些殘留的片段。

我突然意識到,可能 JavaScript 的大部分限制,在 Lua 或其他腳本語言中並不存在。想要解決那些因爲使用 JavaScript 引起的各種問題,可能只需要換一門腳本語言。

當然,此處不考慮通常意義上的使用難度,學習難度,推廣成本一類的因素;畢竟我是純自嗨。但假如,Lua 真的能很好解決我目前遇到的腳本語言無法和宿主語言靈活通信的問題,必將給自己的整體知識體系帶來一個新的提升,也必將在自己的日常實踐中創造出許多新的可能。

所涉及的各個工具的版本

  • 編程語言: LuaJIT 2.0.5 (對應 Lua 5.1的語法)

  • Lua 模塊管理工具:LuaRocks 2.3.0(LuaJIT版)

  • 編輯器:IntelliJ IDEA CE (社區版)

Build #IC-172.4343.14, built on September 26, 2017 JRE: 1.8.0_152-release-915-b12 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.13.1

  • 調試插件:EmmyLua 1.2.0

  • 操作系統:macOS 10.13.1

  • macOS 專用模塊管理工具: Homebrew 1.3.6

以下討論,均以 macOS 爲主,其他系統平臺僅供參考。

安裝 LuaJIT

下載 LuaJIT 源碼

下載地址:http://luajit.org/download.html

一般應選擇最新的 Stable 穩定版本。下載後解壓。

下載 LuaJIT 源碼

編譯 LuaJIT

編譯非常簡單,cd 到 LuaJIT 源碼解壓目錄,然後在終端執行:

make && sudo make install

驗證 LuaJIT 安裝是否成功

打開終端執行:

luajit -v

安裝成功後,應該有以下類似輸出:

LuaJIT 2.0.5 -- Copyright (C) 2005-2017 Mike Pall. http://luajit.org/

安裝 Lua 模塊管理工具:LuaRocks

打開 macOS 終端,輸入以下指令:

brew tap mesca/luarocks
brew install luarocks51 --with-luajit

LuaRocks 的安裝也有多種方式,這是較爲簡化高效的一種。需要注意的是,以此種方式安裝,LuaRocks 的調用命令,將變爲 luarocks-jit

LuaRocks 安裝成功

選擇一個合適的 Lua 編輯器: IntelliJ IDEA CE

Lua 日常編碼,推薦使用 IntelliJ IDEA CE(社區免費版),下載地址:https://www.jetbrains.com/idea/download/

主要是從配置難度,語法高亮,代碼提示,代碼調試等方面權衡。

IntelliJ IDEA CE 預覽

使用 EmmyLua 插件配置調試環境

安裝 EmmyLua

Lua 的調試和高亮,主要得益於 EmmyLua。在 IntelliJ IDEA CE 的 Plugins 中,直接搜索安裝即可。記得,要先安裝此插件,然後再新建工程。安裝此插件後,工程模板,會多一個 Lua 模板選項。從 Lua 模板新建工程,會簡化許多 Lua 相關的配置。

安裝 EmmyLua

安裝 luasocket

在安裝 EmmyLua 插件之後,還需要安裝一個 Lua 庫 luasocket,才能進行調試。

打開終端,輸入以下指令:

sudo luarocks-jit install luasocket  

修改 Lua 路徑配置

Lua 的配置路徑要從默認的 lua,改爲 luajit 命令的真實路徑,一般是 /usr/local/bin/luajit

配置 Lua

開始調試

在 IntelliJ IDEA CE 中新建 Lua 工程,然後新建 Lua 文件 hello.lua,輸入代碼:

-- defines a factorial function
function fact (n)
    if n == 0 then
        return 1
    else
        return n * fact(n - 1)
    end end
a = 6
print(fact(a))

在編輯區左側,打上幾個斷點,然後文件編輯區右鍵,選擇 Debug 'hello.lua':

debug 右鍵菜單

一起簡單看下 Debug 斷點調試的效果:

debug 效果演示

配置 LuaCheck 靜態檢查工具

首先在在終端命令行執行:

sudo luarocks-jit install luacheck

然後在設置頁,配置 LuaCheck 的完整路徑: /usr/local/bin/luacheck

LuaCheck 配置頁

現在編輯區右鍵菜單中選擇 “Run LuaCheck”,就可以進行靜態檢查了。不過初次接觸或運行某些示例代碼時,不用過於糾結靜態檢查的警告。

LuaCheck 效果圖

注意事項

  • 安裝 LuaJIT ,不需要安裝 Lua 5.1 了

  • 一定是要在配置好 EmmyLua 插件後,直接基於新出現的 Lua 模板新建工程;否則在修改項目配置上,可能會花費許多時間。

  • 調試時報錯 **module 'socket' not found **,是因爲沒有安裝 luasocket。

  • Lua 基於MIT 開源,如果哪天想自己定義某種新語言來實現特定的產品特性,可以考慮基於 Lua 定製。

  • Lua 支持各種低級硬件嵌入式開發,可移植性非常好,物聯網時代可能會有新的可能和增長潛力。

  • 如果感覺 luajit 沒有 lua 寫着方便,可以試着在 .profile 中配置 alias 命令別名,詳見:https://stackoverflow.com/a/8967864

alias lua="/usr/local/bin/luajit"
alias luarocks="/usr/local/bin/luarocks-jit"
  • 命令別名,不能 sudo 執行,如安裝 luasocket 時,還是需要 sudo 原始命令:

sudo luarocks-jit install luasocket

  • 如果已經安裝過 Lua 5.1,可能需要先移除它:
brew unlink [email protected]
  • 編碼時,光標移動到下一行的快捷鍵是:

cmd + shift + enter

小結

以上介紹了 macOS 平臺,LuaJIT 從安裝到配置調試環境的完整過程。接下來,就可以根據自己的節奏和需要,好好領略 Lua 之美了~

參考文檔:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章