它可能是重复的,但我尝试了我在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
提前致谢。
答案 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" />