Errors when linking sdkbox libraries with ndk r13b, clang and c++_static stl

Errors when linking sdkbox libraries with ndk r13b, clang and c++_static stl
0.0 0

#1

It seems like static_c++ library of sdkbox plugins can be used with ndk r10e only?
Could you provide updated libraries with latest ndk r13b?

Environment:
Windows 10
cocos2d-x 3.13.1
sdkbox v1.0.1.0
NDK r13b, clang, c++_static

Reproduct steps:

  1. create a new project with cocos command
  2. download sdkbox from website and import any plugin, iap for example.
  3. use static_c++ library instead of gnustl one in sdkbox and plugin directories.
  4. modify AppDelegate.cpp to initialize plugin
  5. modify Application.md located in proj.android-studio/app/jni: change APP_STL to c++_static, add APP_ABI := armeabi
  6. run set NDK_TOOLCHAIN_VERSION=clang
  7. compile by using cocos compile -p android --android-studio

Output:
Building mode: debug
Using Android Studio project : C:\proj\test\test-sdkbox\proj.android-studio
running: ‘“C:\dev\sdk\android-sdk\tools\android” update project -t android-22 -p C:\proj\test\test-sdkbox\proj.android-studio\app’

Updated project.properties
Updated local.properties
Updated file C:\proj\test\test-sdkbox\proj.android-studio\app\proguard-project.txt
Building native…
NDK build mode: debug
running: ‘“D:\sdk\android-ndk-r13b\ndk-build” -C C:\proj\test\test-sdkbox\proj.android-studio\app -j8 NDK_MODULE_PATH=C:\proj\test\test-sdkbox\proj.android-studio…/cocos2d;C:\proj\test\test-sdkbox\proj.android-studio…/cocos2d/cocos;C:\proj\test\test-sdkbox\proj.android-studio…/cocos2d/external NDK_TOOLCHAIN_VERSION=clang NDK_DEBUG=1’

make: Entering directory C:/proj/test/test-sdkbox/proj.android-studio/app' [armeabi] Compile++ arm : cocostudio_static <= WidgetReader.cpp [armeabi] Compile++ arm : cocostudio_static <= FlatBuffersSerialize.cpp [armeabi] Compile++ arm : cocostudio_static <= WidgetCallBackHandlerProtocol.cpp [armeabi] Compile++ arm : cocostudio_static <= CCComExtensionData.cpp .... .... .... [armeabi] StaticLibrary : libbullet.a [armeabi] StaticLibrary : libcpufeatures.a [armeabi] StaticLibrary : libcocos2dandroid.a [armeabi] SharedLibrary : libMyGame.so /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4448: error: undefined reference to 'std::__1::__shared_weak_count::__release_shared()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4448: error: undefined reference to 'std::__1::__shared_weak_count::__release_shared()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:479: error: undefined reference to 'std::__1::ios_base::getloc() const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/__locale:174: error: undefined reference to 'std::__1::locale::use_facet(std::__1::locale::id&) const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:479: error: undefined reference to 'std::__1::locale::~locale()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:734: error: undefined reference to 'std::__1::ios_base::getloc() const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/__locale:174: error: undefined reference to 'std::__1::locale::use_facet(std::__1::locale::id&) const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:734: error: undefined reference to 'std::__1::locale::~locale()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:524: error: undefined reference to 'std::__1::ios_base::clear(unsigned int)' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:494: error: undefined reference to 'std::__1::num_put<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > >::id' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:494: error: undefined reference to 'std::__1::ctype<char>::id' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:508: error: undefined reference to 'std::__1::ios_base::getloc() const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/__locale:174: error: undefined reference to 'std::__1::locale::use_facet(std::__1::locale::id&) const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:508: error: undefined reference to 'std::__1::locale::~locale()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:734: error: undefined reference to 'std::__1::ios_base::getloc() const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/__locale:174: error: undefined reference to 'std::__1::locale::use_facet(std::__1::locale::id&) const' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:734: error: undefined reference to 'std::__1::locale::~locale()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:524: error: undefined reference to 'std::__1::ios_base::clear(unsigned int)' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:520: error: undefined reference to 'std::__1::num_put<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > >::id' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:520: error: undefined reference to 'std::__1::ctype<char>::id' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:668: error: undefined reference to 'std::__1::ios_base::init(void*)' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/streambuf:370: error: undefined reference to 'std::__1::locale::locale()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:668: error: undefined reference to 'std::__1::ios_base::init(void*)' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/streambuf:370: error: undefined reference to 'std::__1::locale::locale()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4448: error: undefined reference to 'std::__1::__shared_weak_count::__release_shared()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:3639: error: undefined reference to 'std::__1::__shared_weak_count::~__shared_weak_count()' jni/./sdkbox/libs/armeabi/libsdkbox.a(Base64.o):Base64.cpp:typeinfo for std::__1::__shared_ptr_pointer<char*, std::__1::default_delete<char>, std::__1::allocator<char> >: error: undefined reference to 'typeinfo for std::__1::__shared_weak_count' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4448: error: undefined reference to 'std::__1::__shared_weak_count::__release_shared()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:3639: error: undefined reference to 'std::__1::__shared_weak_count::~__shared_weak_count()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4154: error: undefined reference to 'std::__1::__shared_weak_count::__add_shared()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4154: error: undefined reference to 'std::__1::__shared_weak_count::__add_shared()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4154: error: undefined reference to 'std::__1::__shared_weak_count::__add_shared()' jni/./sdkbox/libs/armeabi/libsdkbox.a(RequestManager.o):RequestManager.cpp:typeinfo for std::__1::__shared_ptr_pointer<sdkbox::XMLHttpRequest*, std::__1::default_delete<sdkbox::XMLHttpRequest>, std::__1::allocator<sdkbox::XMLHttpRequest> >: error: undefined reference to 'typeinfo for std::__1::__shared_weak_count' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:3639: error: undefined reference to 'std::__1::__shared_weak_count::~__shared_weak_count()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:4154: error: undefined reference to 'std::__1::__shared_weak_count::__add_shared()' jni/./sdkbox/libs/armeabi/libsdkbox.a(SdkboxCore.o):SdkboxCore.cpp:typeinfo for std::__1::__shared_ptr_pointer<sdkbox::AppLifeCycleListener*, std::__1::default_delete<sdkbox::AppLifeCycleListener>, std::__1::allocator<sdkbox::AppLifeCycleListener> >: error: undefined reference to 'typeinfo for std::__1::__shared_weak_count' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/memory:3639: error: undefined reference to 'std::__1::__shared_weak_count::~__shared_weak_count()' jni/./sdkbox/libs/armeabi/libsdkbox.a(XMLHttpRequest.o):XMLHttpRequest.cpp:typeinfo for std::__1::__shared_ptr_pointer<sdkbox::XMLHttpRequestListener*, std::__1::default_delete<sdkbox::XMLHttpRequestListener>, std::__1::allocator<sdkbox::XMLHttpRequestListener> >: error: undefined reference to 'typeinfo for std::__1::__shared_weak_count' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/streambuf:370: error: undefined reference to 'std::__1::locale::locale()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:343: error: undefined reference to 'std::__1::ios_base::clear(unsigned int)' jni/src/LogAndroid.cpp:58: error: undefined reference to 'std::__1::cout' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:661: error: undefined reference to 'std::__1::ios_base::~ios_base()' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:524: error: undefined reference to 'std::__1::ios_base::clear(unsigned int)' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:546: error: undefined reference to 'std::__1::num_put<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > >::id' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ostream:546: error: undefined reference to 'std::__1::ctype<char>::id' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:668: error: undefined reference to 'std::__1::ios_base::init(void*)' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/streambuf:370: error: undefined reference to 'std::__1::locale::locale()' jni/./pluginiap/libs/armeabi/libPluginIAP.a(IAPWrapper.o):IAPWrapper.cpp:typeinfo for std::__1::basic_ios<char, std::__1::char_traits<char> >: error: undefined reference to 'typeinfo for std::__1::ios_base' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/istream:288: error: undefined reference to 'std::__1::ctype<char>::id' /usr/local/Cellar/android-ndk/r10e/sources/cxx-stl/llvm-libc++/libcxx/include/ios:668: error: undefined reference to 'std::__1::ios_base::init(void*)' clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [obj/local/armeabi/libMyGame.so] Error 1 make: Leaving directoryC:/proj/test/test-sdkbox/proj.android-studio/app’
Error running command, return code: 2.


#2

We haven’t test SDKBOX with r13b yet. since majority of the projects still using older version of ndk.


#3

I remember I had tested r11 long time ago, it failed at same place, so this link error not just on r13b, I guess.
And this time we encounter an issue in ndk that we have to upgrade to r12b or later.

Anyway, please let me know if you have plan to support the latest ndk, thank you.


#4

We’re look into how to make SDKBOX more compatible across different NDK versions.


#5

Sounds great.
Thank you.


#6

Any update on this? I’m in the same situation.


#7

Is there any update on it???


#8

I’d just like to add my “+1” to this. I’m getting close to the stage where I’m going to want to ad ads/iaps to my game and the plan was to use SKDBOX. I’m using r13. I might try to switch to an older NDK, otherwise I guess I won’t be using SDKBOX.


#9

SDKBOX works with r13, this issue is with c++_static lib which is not the default std lib for cocos2d-x


#10

That’s awesome, thanks for the info! I’ll be giving it a try soon.


#11

gnustl_static library of SDKBOX works perfect with ndk r13b. But c++_static versions of SDKBOX libraries still not working. Please, could you provide updated libraries?


#12

Hi, we are having the same issue. We can’t make SDKBox work with ndk r13b and c++_static.

Will this be fixed in future versions?

Thanks


#13

sdkbox also doesnt work with crystax NDK ( sad


#14

we’re working on it, so far we managed to get dynamic lib working which means the previous automated integration will need a big change, since they’re designed for static lib


#15

any news??


#16

v2.3.15 Support NDK r14b c++_static


#17

thanks, where i can file a bug?
because it’s still fail when linking

jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(LogAndroid.o):function sdkbox::Logger::PlatformInit(): error: undefined reference to ‘std::__1::locale::locale()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(LogAndroid.o):function sdkbox::Logger::PlatformInit(): error: undefined reference to ‘std::__1::cout’


#18

which ndk versoin?


#19

14b

running: ‘/home/andrew/ndk/android-ndk-r14b/ndk-build -C /home/andrew/work/sources/cocos2d/liftemall-next/proj.android-studio/app -j4 NDK_MODULE_PATH=/home/andrew/work/sources/cocos2d/liftemall-next/cocos2d:/home/andrew/work/sources/cocos2d/liftemall-next/cocos2d/cocos:/home/andrew/work/sources/cocos2d/liftemall-next/cocos2d/external NDK_TOOLCHAIN_VERSION=4.9 NDK_DEBUG=1’

part of Application.mk

APP_STL := c++_static

APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char
APP_LDFLAGS := -latomic

APP_ABI := armeabi

full error log:

[armeabi] SharedLibrary : libMyGame.so
jni/…/…/…/Classes/scenes/IAPExampleScene.cpp:106: error: undefined reference to ‘sdkbox::IAP::purchase(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:211: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::showLeaderboard(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:223: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::unlockAchievement(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:227: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::incrementAchievement(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&, double)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:228: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::incrementAchievement(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&, double)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:232: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::getMyScore(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&, int, int)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:237: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::getPlayerCenteredScores(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&, int, int, int)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:245: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::submitScore(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&, long)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:249: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::setSteps(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&, double)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:253: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::reveal(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:286: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::getPlayerAccountField(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&)’
jni/…/…/…/Classes/scenes/PlayExampleScene.cpp:288: error: undefined reference to ‘sdkbox::PluginSdkboxPlay::getPlayerAccountField(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&)’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(GPGAchievementsProxy.o):function std::__1::shared_ptrsdkbox::JNIMethodInfo::~shared_ptr(): error: undefined reference to ‘std::__1::__shared_weak_count::__release_shared()’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::sentry::~sentry(): error: undefined reference to ‘std::__1::ios_base::clear(unsigned int)’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::flush(): error: undefined reference to ‘std::__1::ios_base::clear(unsigned int)’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::ios_base::getloc() const’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::locale::use_facet(std::__1::locale::id&) const’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::locale::~locale()’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::ios_base::getloc() const’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::locale::use_facet(std::__1::locale::id&) const’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::locale::~locale()’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::ios_base::clear(unsigned int)’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::num_put<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits > >::id’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int): error: undefined reference to ‘std::__1::ctype::id’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::operator<< <std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*): error: undefined reference to ‘std::__1::ios_base::getloc() const’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::operator<< <std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*): error: undefined reference to ‘std::__1::locale::use_facet(std::__1::locale::id&) const’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::operator<< <std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*): error: undefined reference to ‘std::__1::locale::~locale()’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::operator<< <std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*): error: undefined reference to ‘std::__1::ios_base::clear(unsigned int)’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::operator<< <std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*): error: undefined reference to ‘std::__1::ctype::id’
jni/./PluginSdkboxPlay/libs_c++_static/armeabi/libPluginSdkboxPlay.a(SdkboxPlayWrapper-android.o):function sdkbox::SdkboxPlayWrapperEnabled::resetAchievements(): error: undefined reference to ‘std::__1::cout’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function std::__1::basic_streambuf<char, std::__1::char_traits >::~basic_streambuf(): error: undefined reference to ‘std::__1::locale::~locale()’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function std::__1::basic_ios<char, std::__1::char_traits >::~basic_ios(): error: undefined reference to ‘std::__1::ios_base::~ios_base()’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(long): error: undefined reference to ‘std::__1::ios_base::getloc() const’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(long): error: undefined reference to ‘std::__1::locale::use_facet(std::__1::locale::id&) const’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(long): error: undefined reference to ‘std::__1::num_put<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits > >::id’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(long): error: undefined reference to ‘std::__1::ctype::id’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function sdkbox::IAPWrapperEnabled::__notifyByProduct(sdkbox::Product const&): error: undefined reference to ‘std::__1::ios_base::init(void*)’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):function sdkbox::IAPWrapperEnabled::__notifyByProduct(sdkbox::Product const&): error: undefined reference to ‘std::__1::locale::locale()’
jni/./PluginIAP/libs_c++_static/armeabi/libPluginIAP.a(IAPWrapper.o):typeinfo for std::__1::basic_ios<char, std::__1::char_traits >: error: undefined reference to ‘typeinfo for std::__1::ios_base’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(unsigned int): error: undefined reference to ‘std::__1::num_put<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits > >::id’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(unsigned int): error: undefined reference to ‘std::__1::ctype::id’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function sdkbox::AdBooster::adInit(): error: undefined reference to ‘std::__1::__shared_weak_count::__release_shared()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > sdkbox::utils::tostr(int const&): error: undefined reference to ‘std::__1::ios_base::init(void*)’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > sdkbox::utils::tostr(int const&): error: undefined reference to ‘std::__1::locale::locale()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function sdkbox::AdBooster::adRquest(): error: undefined reference to ‘std::__1::ios_base::init(void*)’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function sdkbox::AdBooster::adRquest(): error: undefined reference to ‘std::__1::locale::locale()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(AdBooster.o):function sdkbox::AdBooster::adRquest(): error: undefined reference to ‘std::__1::__shared_weak_count::__release_shared()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(Base64.o):function std::__1::__shared_ptr_pointer<char*, std::__1::default_delete, std::__1::allocator >::~__shared_ptr_pointer(): error: undefined reference to ‘std::__1::__shared_weak_count::~__shared_weak_count()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(Base64.o):typeinfo for std::__1::__shared_ptr_pointer<char*, std::__1::default_delete, std::__1::allocator >: error: undefined reference to ‘typeinfo for std::__1::__shared_weak_count’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(ConfigManager.o):function sdkbox::DownloadConfigXHRListener::onLoad(sdkbox::XMLHttpRequest const&): error: undefined reference to ‘std::__1::__shared_weak_count::__release_shared()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(RequestManager.o):function std::__1::__shared_ptr_pointer<sdkbox::XMLHttpRequest*, std::__1::default_deletesdkbox::XMLHttpRequest, std::__1::allocatorsdkbox::XMLHttpRequest >::~__shared_ptr_pointer(): error: undefined reference to ‘std::__1::__shared_weak_count::~__shared_weak_count()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(RequestManager.o):function void std::__1::vector<std::__1::shared_ptrsdkbox::XMLHttpRequest, std::__1::allocator<std::__1::shared_ptrsdkbox::XMLHttpRequest > >::__push_back_slow_path<std::__1::shared_ptrsdkbox::XMLHttpRequest const&>(std::__1::shared_ptrsdkbox::XMLHttpRequest const&): error: undefined reference to ‘std::__1::__shared_weak_count::__add_shared()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(RequestManager.o):function sdkbox::RequestManager::__addRequestImpl(sdkbox::XMLHttpRequest*): error: undefined reference to ‘std::__1::__shared_weak_count::__add_shared()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(RequestManager.o):function sdkbox::RequestManager::__addRequestImpl(sdkbox::XMLHttpRequest*): error: undefined reference to ‘std::__1::__shared_weak_count::__add_shared()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(RequestManager.o):typeinfo for std::__1::__shared_ptr_pointer<sdkbox::XMLHttpRequest*, std::__1::default_deletesdkbox::XMLHttpRequest, std::__1::allocatorsdkbox::XMLHttpRequest >: error: undefined reference to ‘typeinfo for std::__1::__shared_weak_count’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(SdkboxCore.o):function std::__1::__shared_ptr_pointer<sdkbox::AppLifeCycleListener*, std::__1::default_deletesdkbox::AppLifeCycleListener, std::__1::allocatorsdkbox::AppLifeCycleListener >::~__shared_ptr_pointer(): error: undefined reference to ‘std::__1::__shared_weak_count::~__shared_weak_count()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(SdkboxCore.o):function std::__1::vector<std::__1::shared_ptrsdkbox::AppLifeCycleListener, std::__1::allocator<std::__1::shared_ptrsdkbox::AppLifeCycleListener > >::vector(std::__1::vector<std::__1::shared_ptrsdkbox::AppLifeCycleListener, std::__1::allocator<std::__1::shared_ptrsdkbox::AppLifeCycleListener > > const&): error: undefined reference to ‘std::__1::__shared_weak_count::__add_shared()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(SdkboxCore.o):typeinfo for std::__1::__shared_ptr_pointer<sdkbox::AppLifeCycleListener*, std::__1::default_deletesdkbox::AppLifeCycleListener, std::__1::allocatorsdkbox::AppLifeCycleListener >: error: undefined reference to ‘typeinfo for std::__1::__shared_weak_count’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(Utils.o):function sdkbox::utils::split(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >&): error: undefined reference to ‘std::__1::ios_base::init(void*)’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(Utils.o):function sdkbox::utils::split(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >&): error: undefined reference to ‘std::__1::locale::locale()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(XMLHttpRequest.o):function std::__1::__shared_ptr_pointer<sdkbox::XMLHttpRequestListener*, std::__1::default_deletesdkbox::XMLHttpRequestListener, std::__1::allocatorsdkbox::XMLHttpRequestListener >::~__shared_ptr_pointer(): error: undefined reference to ‘std::__1::__shared_weak_count::~__shared_weak_count()’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(XMLHttpRequest.o):typeinfo for std::__1::__shared_ptr_pointer<sdkbox::XMLHttpRequestListener*, std::__1::default_deletesdkbox::XMLHttpRequestListener, std::__1::allocatorsdkbox::XMLHttpRequestListener >: error: undefined reference to ‘typeinfo for std::__1::__shared_weak_count’
jni/./sdkbox/libs_c++_static/armeabi/libsdkbox.a(LogAndroid.o):function sdkbox::Logger::PlatformInit(): error: undefined reference to ‘std::__1::cout’
collect2: error: ld returned 1 exit status
make: *** [obj/local/armeabi/libMyGame.so] Error 1
make: Leaving directory `/home/andrew/work/sources/cocos2d/liftemall-next/proj.android-studio/app’
Error running command, return code: 2.

sdkbox and plugins are v2.3.15.2
cocos2d-x 3.15.1


#20

looks like it’s related to this issue http://www.sdkbox.com/answers/question/c_static-support/?show_answer=387#answer_387
because your library still have __1 instead of __ndk1

objdump -D proj.android-studio/app/jni/sdkbox/libs_c++_static/armeabi/libsdkbox.a | grep basic_string | tail -1
00000000 <.ARM.exidx.text._ZN6sdkbox12NativeBridge19RemoveEventListenerERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEPNS1_8functionIFvS9_P8_jobjectEEE>:

for example, my test library based on https://github.com/googlesamples/android-ndk/tree/master/hello-libs with ndk14b

objdump -D distribution/gmath/lib/armeabi/libgmath.a | grep basic_string | tail -1
00000000 <_ZTVNSt6__ndk118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE>: