STL library - STLport or GNU libstdc++?

Skip to first unread message

Ilya Konstantinov

May 27, 2014, 9:34:41 PM5/27/14

I'm porting a native app that requires wchar support and STL to Android.
I'm using Dmitry Moskalchuk's (crystax) work for wchar implementations,
and now I'm contemplating on whether to use STLport or libstdc++.

In my particular case, I need -fshort-wchar, which further complicates

1) STLport comes with a README notice stating it's beta quality
   and in particular, it claims exceptions are not supported.
   Anyone knows what's up with that?
   For the record, stlport/stl/config/_android.h does NOT define
2) Any reason wstring wouldn't work if I rebuild STLport
   with proper, functioning wide string functions?

3) The disadvantage in using libstdc++ is that it has to be built
   as part of a toolchain rebuild, which I prefer to avoid (since
   I want to enable our devs to use Google-maintained NDKs).
   Is there a way to build libstdc++ separate from the toolchain?
   The reason for rebuilding is widechar support.

What's with STLport's <stdexcept> only including *forward
declarations* of std::string? I understand the desire to speed up
builds, but this is silly. Doing 'throw runtime_exception("something
broke") and the ensuing 'cannot cast const char* to std::string'
is way confusing, and including <string> to solve this
is counter-intuitive.

(If I end up using STLport, I'll probably have an 'stdexcept' of my own
#include_next'ing theirs and then including <string>.)

J Decker

May 28, 2014, 12:30:14 AM5/28/14
If you had working wide char support; you could only use it for reading existing files and rendering; there's no way to get unicode input from the user.

You received this message because you are subscribed to the Google Groups "android-ndk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
For more options, visit

David Turner

May 28, 2014, 4:17:30 AM5/28/14
Read $NDK/docs/CPLUSPLUS-SUPPORT.html for all the details.

In a nutshell:

1) You can use STLport with exceptions now (requires a recent NDK). However, the library is ancient, upstream maintenance is dead, and it lacks many useful features. I would not recommend it.

2) wchar_t is not fully supported by the system, you could try using the support library under ($NDK/sources/android/support) to get better one though. You'll have to statically link it to your own project files. Not sure how to piggy back libstdc++ on top of it though, the library was specifically written to get libc++ working properly instead (this work isn't completed yet though).

3) Rebuilding the GNU libstdc++ may not be enough to get proper wide char support, since it relies on the C library to actually perform low-level tasks. You can look at "$NDK/build/tools/ --stl=gnustl" to rebuild it from sources (look at the scripts for things to modify if you need to).

Reply all
Reply to author
0 new messages