【发布时间】:2014-11-23 14:37:06
【问题描述】:
它可能是重复的,但我尝试了我在 StackOverflow 上找到的所有解决方案。
我正在使用 OpenCV 在 C++ 上创建一个库,并尝试为 Android 编译它。
我不能使用to_string(int)但我不能。我试图修改我的makefile太多次了。我最后的配置是这样的:
Android.mk
LOCAL_PATH := $(call my-dir)
包括 $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=关闭
OPENCV_INSTALL_MODULES:=开启
包括 $(LOCAL_PATH)/jsoncpp/Android.mk
包括 /Users/rafaelruizmunoz/Desktop/AndroidDevelopment/OpenCV-2.4.9-android- sdk/sdk/native/jni/OpenCV.mk
OPENCV_LIB_TYPE:=共享
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 ../../include/boost
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 := 真
提前致谢。
【问题讨论】:
-
在尝试使用
std::to_string之前,您的源文件是否包含<string>...?如果是这样,您可以使用g++ -E ...查看预处理器输出,并检查to_string是否存在...如果不检查标题中的条件#ifdef,并谷歌搜索您所缺少的任何定义。 XCode 可能正在定义您需要的额外预处理器符号... -
是的,它在 XCode 上运行良好。当我编译它时,该库可以完美运行。
-
好的,我这就去做
标签: android c++ opencv c++11 android-ndk