Error de NDK Clang:referencia indefinida a 'localeconv'

 C Programming >> Programación C >  >> Tags >> Clang
Error de NDK Clang:referencia indefinida a 'localeconv'

La respuesta es:la versión NDK para SDK 19 no implementa todo el estándar C++11 en STL. locale.h el encabezado tiene stubs para localeconv() método, pero la biblioteca no lo implementa. El SDK de Android más cercano que implementa localeconv() es SDK 21. Esto se indica implícitamente en el encabezado <locale.h>

struct lconv* localeconv(void) __INTRODUCED_IN(21) __VERSIONER_NO_GUARD;

#if __ANDROID_API__ >= 21
locale_t duplocale(locale_t) __INTRODUCED_IN(21);
void freelocale(locale_t) __INTRODUCED_IN(21);
locale_t newlocale(int, const char*, locale_t) __INTRODUCED_IN(21);
#endif /* __ANDROID_API__ >= 21 */

char* setlocale(int, const char*);

#if __ANDROID_API__ >= 21
locale_t uselocale(locale_t) __INTRODUCED_IN(21);
#endif /* __ANDROID_API__ >= 21 */


#define LC_GLOBAL_LOCALE __BIONIC_CAST(reinterpret_cast, locale_t, -1L)

__END_DECLS

#endif /* _LOCALE_H_ */