错误:"to_string"不是"std"的成员
error: 'to_string' is not a member of 'std'
它可能是重复的,但我尝试了在StackOverflow内外找到的所有解决方案。
我正在用OpenCV在C++上制作一个库,并试图为Android编译它。
我不能使用to_string(int)
,但我不能。我试图修改我的makefile的次数太多了。我的最后一个配置是:
Android.mk
LOCAL_PATH:=$(调用我的目录)
包括$(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:=真
LOCAL_MODULE:=libXYZ
LOCAL_MODULE_NAME:=mylibXYZ
LOCAL_SRC_FILES:=androidClass.cpp main.cpp utils.cpp
LOCAL_LDLBS+=-log-ldl
LOCAL_CAPFLAGS:=-std=c++11 CFLAGS=-g-Wall-Wextra-std=c++11-Wno写字符串../../include/boost
LOCAL_ARED_LIBRARIES:=libJsoncpp libopencv_java
包括$(BUILD_ARED_LIBRARY)
这是我的应用程序.mk
APP_STL:=gnustl_static
APP_CPPFLAGS:=-frti-异常
APP_ABI:=所有
APP_MODULES:=libXYZ libJsoncpp
APP_CPPFLAGS:=-std=gnu++0x
APP_CPPFLAGS+=-frtti
APP_CPPFLAGS+=-异常
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:=真
提前谢谢。
我也遇到了这个问题。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。
Android NDK 9+附带llvm libc++,它完全支持cpp11功能。要启用它,你所要做的就是在Application.mk:中修改这些
APP_CPPFLAGS := -std=c++11
和
APP_STL:=c++_static
或
APP_STL:=c++_shared
你可以试试这个:
#include <string>
#include <sstream>
#if defined(__ANDROID__)
#define TO_STRING to_stringAndroid
template <typename T>
inline std::string to_stringAndroid(const T& value)
{
std::ostringstream os ;
os << value ;
return os.str() ;
}
#else
#define TO_STRING std::to_string
#endif
- 为什么std::valarray不是算术的
- 为什么std::isnan 不是 constexpr?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 在声明中合并两个常量"std::set"(不是在运行时)
- 如果 std::vector::clear() 不是静态的,如何在没有实例的情况下调用它?
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 使用 std::variant<...时调用 BaseState 函数而不是派生函数>
- 如果 KEY 是 std::list 或 std::vector 而不是值,那么 std::map 的默认行为是什么?
- 使用 std::optional,而不是自己的结构
- 初始化 std::vector 替换为单大括号而不是双大括号
- std::to_string - 'to_string' 不是 'std' 的成员 - Visual Studio Code 1.42.0
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- 传递 std::vector of std::shared_ptr,而不是更新对象
- "std::shared_ptr":不是参数"_Ty"的有效模板类型参数
- 为什么我需要做'using namespace std'而不是"使用 std::cout"?
- FreeFileSync C++错误:'byte'不是 'std' 的成员
- std::vector move 而不是交换到空 vector 并释放存储
- 为什么 std::gcd/lcm 返回 std::common_type_t<M, N> 而不是 auto?
- <char> 使用 Vulkan 映射内存时如何使用 std::vector 而不是 void**?
- 为什么 std::vector 使用 std::分配器而不是运算符 new 和 delete?