错误:' to_string'不是' std'的成员

时间:2014-09-29 08:49:37

标签: android c++ opencv c++11 android-ndk

它可能是重复的,但我尝试了我在StackOverflow上找到的所有解决方案。

我正在使用OpenCV在C ++上创建一个库并尝试为Android编译它。

我无法使用to_string(int),但我无法做到。我试图修改我的makefile太多次了。我的最后一个配置是:

Android.mk

  

LOCAL_PATH:= $(致电my-dir)

     

包括$(CLEAR_VARS)

     

OPENCV_CAMERA_MODULES:= off

     

OPENCV_INSTALL_MODULES:=上

     

包括$(LOCAL_PATH)/jsoncpp/Android.mk

     

包括/Users/rafaelruizmunoz/Desktop/AndroidDevelopment/OpenCV-2.4.9-android-   SDK / SDK /天然的/ JNI / OpenCV.mk

     

OPENCV_LIB_TYPE:= SHARED

     

LOCAL_C_INCLUDES + = $(LOCAL_PATH)

     

LOCAL_C_INCLUDES + = / Users / rafaelruizmunoz / opencvscan / OpenCVtry /

     

LOCAL_C_INCLUDES + = / Users / rafaelruizmunoz / Desktop / RD / OpenCVtry / Libraries / jsoncpp-   主/包括

     

LOCAL_PATH:= jni

     

LOCAL_ALLOW_UNDEFINED_SYMBOLS:= true

     

LOCAL_MODULE:= libXYZ

     

LOCAL_MODULE_NAME:= mylibXYZ

     

LOCAL_SRC_FILES:= androidClass.cpp main.cpp utils.cpp

     

LOCAL_LDLIBS + = -llog -ldl

     

LOCAL_CPPFLAGS:= - std = c ++ 11 CFLAGS = -g -Wall -Wextra -std = c ++ 11 -Wno-write-strings   ../../包括/升压

     

LOCAL_SHARED_LIBRARIES:= libJsoncpp libopencv_java

     

包括$(BUILD_SHARED_LIBRARY)

这是我的 Application.mk

  

APP_STL:= gnustl_static

     

APP_CPPFLAGS:= -frtti -fexceptions

     

APP_ABI:=全部

     

APP_MODULES:= libXYZ libJsoncpp

     

APP_CPPFLAGS:= - std = gnu ++ 0x

     

APP_CPPFLAGS + = -frtti

     

APP_CPPFLAGS + = -fexceptions

     

APP_CPPFLAGS + = -DDEBUG

     

APP_CPPFLAGS + = -std = c ++ 11

     

NDK_TOOLCHAIN_VERSION:= 4.8

     

LOCAL_C_INCLUDES + = $ {ANDROID_NDK} / sources / cxx-stl / gnu-libstdc ++ / 4.8 / include

     

APP_USE_CPP0X:= true

提前致谢。

3 个答案:

答案 0 :(得分:6)

Android NDK 9+附带llvm-libc++,它完全支持cpp11功能。要启用它,您所要做的就是在Application.mk中修改这些:

APP_CPPFLAGS := -std=c++11

APP_STL:=c++_static 

APP_STL:=c++_shared

答案 1 :(得分:4)

我也遇到过这个问题。 to_string在gnu-libstdc ++中没有“开箱即用”。我搜索了源代码,发现std :: to_string确实在lib中(sources / cxx-stl / gnu-libstdc ++ / 4.9 / include / bits / basic_string.h),但是选择了

#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
     && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))

将-D_GLIBCXX_USE_C99添加到构建std :: to_string后,选择了。

答案 2 :(得分:3)

你可以试试这个:

<param name="source" value="@Url.Content("~/ClientBin/YourSilverlightApp.xap")?@DateTime.Now.Ticks" />