当我尝试将 .so 编译为 bibiliotek 时,我收到一条错误消息,指出方式不正确,而不是我所期望的本地方式,我看到了一种通向 NDK 的方式,这是什么问题,这里是我的 MK 文件:
include $(CLEAR_VARS)
LOCAL_PATH := $(call my-dir)
@echo "Local path = $LOCAL_PATH"
SCRIPT := $(LOCAL_PATH)/LuaJIT/build.sh
ECHO_RESULT1 := $(shell $(SCRIPT))
#ECHO_RESULT := $(shell ($(LOCAL_PATH)/LuaJit/build.sh))
@echo "ECHO_RESULT1=$(ECHO_RESULT1)"
include $(CLEAR_VARS)
LOCAL_MODULE := libluajit
LOCAL_SRC_FILES := $(LOCAL_PATH)/jnlua/src/libluajit.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libjnlua
LOCAL_C_INCLUDES += $(LOCAL_PATH)/LuaJit/src
LOCAL_SRC_FILES := $(LOCAL_PATH)/jnlua/src/jnlua.c
LOCAL_LDLIBS := -llog
LOCAL_CFLAGS := -O2 -Wall -DLUA_COMPAT_ALL
#LOCAL_SHARED_LIBRARIES := libjavavm
LOCAL_STATIC_LIBRARIES := libluajit
# POSIX as we're on linux, and compatibility mode in case you'll …
Run Code Online (Sandbox Code Playgroud) 如何从C-API创建Lua表,如下所示:
TableName = {a, b, c}
Run Code Online (Sandbox Code Playgroud)
如何设置表名?我只知道如何创建表和put值,但不知道如何设置表的名称.
创建没有名称的表的代码:
lua_createtable(L, 0, 3);
lua_pushnumber(L, 1);
lua_setfield(L, -2, "a");
lua_pushnumber(L, 2);
lua_setfield(L, -2, "b");
lua_pushnumber(L, 3);
lua_setfield(L, -2, "c");
Run Code Online (Sandbox Code Playgroud) 我需要在 Lua 5.1 C-API 中创建这样的结构,而不是在 Lua 5.2 及更高版本中
a = {["b"] = {["c"] = {["d"] = {["e"] = "GOOD"}}}}
print(a.b.c.d.e);
Run Code Online (Sandbox Code Playgroud)
预期结果:好
感谢您的回答!