-
Notifications
You must be signed in to change notification settings - Fork 4.2k
如何在 skynet 中加入 C 库
Gowa2017 edited this page Dec 9, 2022
·
1 revision
LUA_CLIB_PATH ?= luaclib
LUA_INC ?= skynet/3rd/lua
CFLAGS = -g -O0 -Wall -I$(LUA_INC)
SHARED := -fPIC --shared
$(LUA_CLIB_PATH) :
mkdir $(LUA_CLIB_PATH)
$(LUA_CLIB_PATH)/cjson.so : 3rd/lua-cjson/lua_cjson.c 3rd/lua-cjson/strbuf.c 3rd/lua-cjson/fpconv.c | $(LUA_CLIB_PATH)
$(CC) $(CFLAGS) $(SHARED) -I3rd/lua-cjson $^ -o $@
LUA_CLIB = cjson
all: \
$(LUA_CLIB_PATH) \
$(foreach v, $(LUA_CLIB), $(LUA_CLIB_PATH)/$(v).so)
参考 hanxi/skynet-demo/blob/master/Makefile
- 编译 so 的 lua 版本和 skynet 使用的 lua 版本一致,要么同时使用
3rd/lua
,要么同时使用系统的 lua 版本。 - 编译 so 时不能 link liblua.a 静态库。