如何将外部库集成到Cocos Android项目中

我想制作一个使用C++构建,使用Lua进行脚本编写的游戏。为了做到这一点,我制作了自己的Lua引擎。对于Windows,我只需包含Lua头文件、Lua库和Lua dll,这样就可以完美地运行了。

现在我想将同样的项目导入到Android中。我面临的问题是,编译时会给所有我调用的Lua调用都出现“未定义的引用”的问题。尽管它能够包含Lua头文件,但仍未编译通过。

编辑1:现在我认为这是因为没有链接lib和.dll文件。我知道Android不像Windows那样使用dll和lib文件,而是使用.so文件。但有人能告诉我如何构建.so文件吗!?

编辑2:所以我进行了更多的研究,最终构建了.so文件。但现在我有四组库:ar64-v8a、armeabi-v7a、x86、x86-64。有人可以告诉我这些库组之间的区别,并如何将它们实际用于我的主要cocos项目中吗!?

#lua

LIB_VERSION:=lua-5.2.2

LOCAL_PATH:= $(call my-dir)
LIB_ROOT_REL:= ../../$(LIB_VERSION)
LIB_ROOT_ABS:= $(LOCAL_PATH)/../../$(LIB_VERSION)

include $(CLEAR_VARS)

LOCAL_CFLAGS := -O2 -Wall -DLUA_COMPAT_ALL -D"getlocaledecpoint() ='.'"

LOCAL_SRC_FILES := \
 <ALL LUA SOURCE FILES INCLUDED HERE>

LOCAL_C_INCLUDES += \
 $(LIB_ROOT_ABS)/src \

LOCAL_LDLIBS += -llog

LOCAL_MODULE := liblua

include $(BUILD_SHARED_LIBRARY)
点赞
用户1559547
用户1559547

你拥有的四个不同文件是为四种不同的架构而设计的 - ar64-v8a、armeabi-v7a、x86、x86-64。根据您计划支持的架构,您将不得不在 libs 下添加相应的文件夹,并将相应的 .so 文件复制到该文件夹中。

因此,如果您计划仅支持 armeabi-v7a,则必须在 libs 文件夹中创建一个名为 armeabi-v7a 的文件夹,并将 armeabi-v7a so 文件添加到其中。

2018-01-31 08:14:12