- 從官網(wǎng)下載Lua源碼,并解壓出來(lái),以lua-5.3.5為例
- 進(jìn)入 lua-5.3.5\src 目錄邪乍,編輯Makefile文件
找到這行代碼
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS)
修改為
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) -fPIC #后面加的-fPIC表示要編譯位置無(wú)關(guān)代碼
找到
LUA_A = liblua.a
下面添加一行
LUA_SO = liblua.so #表示新建一個(gè)目標(biāo)降狠,要編譯出lua動(dòng)態(tài)庫(kù),編譯出來(lái)的 動(dòng)態(tài)庫(kù)文件名字為liblua.so
找到
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
改為
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) 表示添加上剛才的目標(biāo)
找到
$(LUA_A): $(BASE_O)
$(AR) $@ $?
$(RANLIB) $@
在下面添加一行
$(LUA_SO): $(CORE_O) $(LIB_O)
$(CC) -o $@ -shared $? -ldl -lm 注意:本行前面的空格其實(shí)是一個(gè)tab
保存該makefile文件庇楞,回到上層目錄榜配,即回到目錄 lua-5.3.5/ 打開(kāi)Makefile 文件
找到
TO_LIB= liblua.a
修改為
TO_LIB= liblua.a liblua.so # 表示同時(shí)編譯靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)
保存該makefile文件,然后執(zhí)行命令
make linux
后面的linux表示當(dāng)前平臺(tái)即可在當(dāng)前目錄吕晌,即 lua-5.3.5/src目錄下 得到編譯出來(lái)的靜態(tài)庫(kù)liblua.a蛋褥,動(dòng)態(tài)庫(kù)liblua.so