我在\frameworks\cocos2d-x\external\lua\lua 这个目录下 添加了 三个文件 pb.c lpack.clpack.h,
在这个目录下的 Android.mk 和 CMakeLists.txt里面 也都写进去了。
这个是Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := lua_static
LOCAL_MODULE_FILENAME := liblua
LOCAL_ARM_MODE := arm
LOCAL_SRC_FILES :=
lapi.c
lauxlib.c
lbaselib.c
lcode.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lua.c
lundump.c
lvm.c
lzio.c
print.c
lpack.c
pb.c
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_C_INCLUDES := $(LOCAL_PATH)
include $(BUILD_STATIC_LIBRARY)
下面是CMakeLists.txt
cmake_minimum_required(VERSION 3.6)
set(lib_name lua)
set(target_name ext_${lib_name})
project(${lib_name})
if(IOS)
include(…/…/cmake/CocosExternalConfig.cmake)
add_library(${target_name} STATIC IMPORTED GLOBAL)
set_target_properties({target_name} PROPERTIES
IMPORTED_LOCATION "{CMAKE_CURRENT_SOURCE_DIR}/prebuilt/ios/lib${lib_name}.a"
)
else()
set(${target_name}_src
lpack.c
pb.c
lapi.c
lauxlib.c
lbaselib.c
lcode.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lundump.c
lvm.c
lzio.c
print.c
)
add_library({target_name} STATIC
{${target_name}_src}
)
target_include_directories(${target_name} INTERFACE .)
set_target_properties({target_name}
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "{CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY “${CMAKE_BINARY_DIR}/lib”
FOLDER “External”
)
endif()
vs2017 上编译是没问题的。到lua层也有调用到,但是 Android studio 编译不过去,这两个文件没有生成.o文件。。。
球大神帮忙啊