I want to create android library using c++ stl.
my build tools are visual studio 2015, Visual GDB.
source code is
.cpp
#include <jni.h>
#include "AndroidProject2.h"
#include <vector>
void foo() { std::vector<int> aaa; aaa.push_back(1); }
Android.mk
# Generated by VisualGDB
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := AndroidProject2-shared
LOCAL_SRC_FILES := AndroidProject2.cpp
COMMON_SRC_FILES := $(LOCAL_SRC_FILES)
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := AndroidProject2-static
LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
include $(BUILD_STATIC_LIBRARY)
Application.mk
APP_MODULES := AndroidProject2-static AndroidProject2-shared
APP_ABI := all
APP_STL := gnustl_static
NDK_TOOLCHAIN_VERSION :=4.9
I succeed build, so, created lib files libAndroidProject2-static.a, libAndroidProject2-static.so
than, I try to change APP_STL option in Application.mk
APP_MODULES := AndroidProject2-static AndroidProject2-shared
APP_ABI := all
APP_STL := gnustl_shared
NDK_TOOLCHAIN_VERSION :=4.9
surely, succeed build. so, created lib files libAndroidProject2-shared.a, libAndroidProject2-shared.so
than, I Compare it and previous build outputs.
I Found the difference about .so file. gnustl_static option's .so file is more bigger than gnustl_shared option's it. but .a is same.
why? I used nm, readelf but can't find difference. what is diff???