c++ - Android Studio 因大型 C++ 头文件而崩溃

标签 c++ android-ndk android-studio-3.0

我正在尝试将 NDK 与 Android Studio 结合使用来编译我的 C++ 代码。 在我的 C++ 代码中,我有几个存储非常大的无符号字符数组的图像数据头。我可以毫无问题地使用独立的 NDK 编译代码。

但是在 Android studio 中,如果我包含那些图像数据头文件,Android studio 将卡住 100% CPU 负载。

我在 Android Studio 中缺少设置吗?我应该如何解决这个问题?我想在 Android Studio 中编译代码,这样我就可以在 C++ 代码中逐步执行。并且,图像数据应该在程序内部编译(而不是单独的文件)。

Begin of Unsigned char array of Image Data enter image description here

已更新

现在,我尝试在包含 header 之前的 cpp 中使用#pragma once(而不是在 header 中定义),它会起作用。但是,如果我将 include guards 或 #pragma once 放在 header 中,Android Studio 仍会卡住。我不明白为什么如果我把 pragma once 和 include guards 放在标题中就不起作用。

pragma one

最佳答案

现在,我解决了这个问题。 而不是在头文件中定义 char 数组。 我将 char 数组移动到 cpp 文件并创建一个 global.h header ,如下所示。 Android Studio 现在不会卡住。

全局.h

#ifndef GLOBAL_H
#define GLOBAL_H

    extern const unsigned char image_data1[];
    extern const unsigned char image_data2[];

#endif // GLOBAL_H

关于c++ - Android Studio 因大型 C++ 头文件而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47425239/

相关文章:

c++ - 应用程序从启动应用程序的地方登录命令提示符

java - Android Studio 3 是否支持 Java 9 进行 Android 开发?如果支持,支持 Java 9 的哪些特性?

android - java.lang.NoSuchMethodError : No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)

c++ - 如何有效地将具有可变长度成员的对象保存到二进制文件中?

c++ - VC++2008中存在图像控件

c++ - VSCode : Debugger for C++ does not launch nor attach properly

android - 在 JNI/OpenGL ES 加载代码期间,非常规和狡猾的 Android 崩溃

不使用定义变量的Android NDK代码分析

安卓工作室 1.3 NDK : cannot locate 'srand'

java - Nougat - JobScheduler RESULT_SUCCESS 但作业没有输出