Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ';运行时错误';尝试使用Android NDK生成so文件时未在此作用域中声明_C++_Android Ndk_G++_Native - Fatal编程技术网

C++ ';运行时错误';尝试使用Android NDK生成so文件时未在此作用域中声明

C++ ';运行时错误';尝试使用Android NDK生成so文件时未在此作用域中声明,c++,android-ndk,g++,native,C++,Android Ndk,G++,Native,我读了下面的帖子,但我认为它不适用于我的情况: 我的问题几乎是一样的,但我正在尝试用AndroidNDK(r8c)编译一个文件,我检查了NDK是否有stdexcept.h,它确实有。以下是我的资料来源: #include <stdexcept> class RandomName : public std::runtime_error { public: ... }; 我应该在Android.mk文件中添加一些行吗?最新的NDK文档在CPLUSPLUS-SUPPORT.html

我读了下面的帖子,但我认为它不适用于我的情况:

我的问题几乎是一样的,但我正在尝试用AndroidNDK(r8c)编译一个文件,我检查了NDK是否有stdexcept.h,它确实有。以下是我的资料来源:

#include <stdexcept>

class RandomName : public std::runtime_error {
public:
  ...
};

我应该在Android.mk文件中添加一些行吗?

最新的NDK文档在CPLUSPLUS-SUPPORT.html文件中对此有很好的解释,尽管我将在这里生成相关的位。对于默认的系统运行时,仅提供以下标题:

cassert cctype cerrno cfloat climits cmath csetjmp csignal CSTDEF
cstdint cstdio cstdlib cstring ctime cwchar新stl_对.h类型信息
效用

从NDK第8版开始,唯一支持异常的运行时是gnustl,您可以通过将以下内容添加到Application.mk而不是Android.mk静态链接该运行时:

APP_STL:=gnustl_static

即使如此,您还需要额外的步骤:

< NDK工具链支持C++异常,因为NDK R5,但是所有 C++源是默认情况下用-FNO异常支持编译的 与以前版本的兼容性原因

要启用它,请在您的应用程序中使用新的LOCAL_CPP_FEATURES变量 Android.mk,如:

LOCAL_CPP_FEATURES += exceptions

最新的NDK文档在CPLUSPLUS-SUPPORT.html文件中对此有很好的解释,尽管我将在这里给出相关的部分。对于默认的系统运行时,仅提供以下标题:

cassert cctype cerrno cfloat climits cmath csetjmp csignal CSTDEF
cstdint cstdio cstdlib cstring ctime cwchar新stl_对.h类型信息
效用

从NDK第8版开始,唯一支持异常的运行时是gnustl,您可以通过将以下内容添加到Application.mk而不是Android.mk静态链接该运行时:

APP_STL:=gnustl_static

即使如此,您还需要额外的步骤:

< NDK工具链支持C++异常,因为NDK R5,但是所有 C++源是默认情况下用-FNO异常支持编译的 与以前版本的兼容性原因

要启用它,请在您的应用程序中使用新的LOCAL_CPP_FEATURES变量 Android.mk,如:

LOCAL_CPP_FEATURES += exceptions

还有,stdexcept头中是否存在类运行时错误?是的,运行时错误类在文件中,而stdexcept头中是否存在类运行时错误?是的,运行时错误类在文件中。如果我添加本地\u CPP\u功能+=异常,我将无法再使用动态\u强制转换?是吗?我没有尝试将它们结合起来,但我对文档的理解是,您可以通过:LOCAL_CPP_FEATURES:=rtti FEATURES来启用rtti和异常。因此,如果我添加LOCAL_CPP_FEATURES+=异常,我将无法再使用dynamic_cast了?是吗?我没有尝试将它们结合起来,但我对文档的理解是,您可以通过:LOCAL_CPP_FEATURES:=rtti FEATURES来启用rtti和异常