我正在尝试构建一个使用来自某些现有c ++代码的静态库的android应用程序.然而,我似乎无法建立东西,这是我到目前为止采取的步骤..
我有ndk-r5b并根据ndk/docs/STANDALINE-TOOLCHAIN.html构建了独立的工具链.然后我使用独立的工具链编译器(arm-linux-androideabi-g ++)代替g ++,用于编译我需要的静态库的Makefile中的CXX标志.这编译没有错误,并产生了3个静态库.以下是用于构建预构建库的一些标志的代码片段:
CXX = arm-linux-androideabi-g++
SYSTEM_LIBS = -lstdc++ -lm
INCLUDE_PATH += ${NDK_PATH}/platforms/android-8/arch-arm/usr/include/
Run Code Online (Sandbox Code Playgroud)
以下是编译时从makefile生成的示例行:
arm-linux-androideabi-g++ -c -DTIME_SIM -I./include -I/home/greg/dev/Android/android-ndk-r5b/platforms/android-8/arch-arm/usr/include/ -fpic -ggdb3 -SimTime.C -o SimTime.o
Run Code Online (Sandbox Code Playgroud)
接下来,我使用以下Android.mk使用ndk-build构建应用程序:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := engine
LOCAL_SRC_FILES := ../libs/libEngine.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := shmem
LOCAL_SRC_FILES := ../libs/libShMem.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := util
LOCAL_SRC_FILES := ../libs/libUtil.a
include $(PREBUILT_STATIC_LIBRARY)
# build server as a shared library
include $(CLEAR_VARS)
LOCAL_MODULE := libServer
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../include
LOCAL_SRC_FILES := \
Server.C …Run Code Online (Sandbox Code Playgroud)