升級(jí)
$ lua -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
最新的穩(wěn)定版本是 5.3.3寥枝,我們?cè)囍謩?dòng)升級(jí),順便過下安裝流程磁奖。
獲取
下載 Lua 5.3.3
解壓
$ tar xzvf lua-5.3.3.tar.gz
$ ll
total 16
-rw-r--r--@ 1 reyn staff 3273 1 14 2016 Makefile
-rw-r--r--@ 1 reyn staff 151 5 31 00:12 README
drwxr-xr-x@ 12 reyn staff 408 5 31 00:11 doc
drwxr-xr-x@ 102 reyn staff 3468 7 21 17:08 src
-
Makefile
: 負(fù)責(zé)對(duì)應(yīng)平臺(tái)的安裝和卸載囊拜; -
README
: 使用說明 -
doc
: 文檔參考 -
src
: 源碼
編譯
- 編譯
按照正常步驟編譯之:
$ make
Please do 'make PLATFORM' where PLATFORM is one of these:
aix bsd c89 freebsd generic linux macosx mingw posix solaris
但是失敗了。我們看失敗提示比搭,是讓指定編譯平臺(tái)冠跷,且支持的平臺(tái)也給列出了。因?yàn)樵贛ac上,所以我們選擇macosx
蜜托,再次嘗試:
$ make macosx
cd src && /Applications/Xcode.app/Contents/Developer/usr/bin/make macosx
/Applications/Xcode.app/Contents/Developer/usr/bin/make all SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc
cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lapi.o lapi.c
cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lcode.o lcode.c
......
cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o luac.o luac.c
cc -o luac luac.o liblua.a -lm -lreadline
好的抄囚,編譯通過了。
提示:
有些情況可能遇到 readline
錯(cuò)誤橄务,這個(gè)時(shí)候需要安裝 readline
包幔托。Mac 下可以使用brew
安裝:brew install readline
- 測(cè)試
$ make test
src/lua -v
Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio
可以看出,測(cè)試是否編譯成功就是調(diào)用 src
目錄下編譯生成的可執(zhí)行文件 lua
仪糖,然后讓它執(zhí)行 lua -v
輸出版本號(hào)信息柑司,如果編譯沒問題,這里自然也不會(huì)出什么婁子锅劝。
安裝
- 安裝到系統(tǒng)環(huán)境
$ sudo make install
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.3 /usr/local/lib/lua/5.3
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
可以看出 make install
做了四個(gè)拷貝操作,分別將相應(yīng)文件到四個(gè)系統(tǒng)環(huán)境目錄中蟆湖,這樣故爵,我們就可以直接調(diào)用 lua
了。
$ lua -v
Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio
- 安裝到本地目錄
$ make local
/Applications/Xcode.app/Contents/Developer/usr/bin/make install INSTALL_TOP=../install
cd src && mkdir -p ../install/bin ../install/include ../install/lib ../install/man/man1 ../install/share/lua/5.3 ../install/lib/lua/5.3
cd src && install -p -m 0755 lua luac ../install/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp ../install/include
cd src && install -p -m 0644 liblua.a ../install/lib
cd doc && install -p -m 0644 lua.1 luac.1 ../install/man/man1
$ ll
total 16
-rw-r--r--@ 1 reyn staff 3273 1 14 2016 Makefile
-rw-r--r--@ 1 reyn staff 151 5 31 00:12 README
drwxr-xr-x@ 12 reyn staff 408 5 31 00:11 doc
drwxr-xr-x 7 reyn staff 238 7 21 17:58 install
drwxr-xr-x@ 102 reyn staff 3468 7 21 17:52 src
$ ll install
total 0
drwxr-xr-x 4 reyn staff 136 7 21 17:58 bin
drwxr-xr-x 7 reyn staff 238 7 21 17:58 include
drwxr-xr-x 4 reyn staff 136 7 21 17:58 lib
drwxr-xr-x 3 reyn staff 102 7 21 17:58 man
drwxr-xr-x 3 reyn staff 102 7 21 17:58 share
make local
會(huì)創(chuàng)建一個(gè) install
目錄隅津,內(nèi)有 bin, include, lib, man, share
子目錄诬垂,并將對(duì)應(yīng)文件拷貝到其中。 如果你想安裝到本地其它目錄伦仍, 運(yùn)行 make install INSTALL_TOP=xxx
结窘,xxx
指目標(biāo)安裝目錄。
終了
至此充蓝,升級(jí)安裝結(jié)束隧枫。
PS:
某些時(shí)刻,讀懂 Makefile
很重要谓苟。