Android Studio аварийно завершает работу с большим заголовочным файлом C++

Я пытаюсь использовать NDK с Android Studio для компиляции моего кода C++. Внутри моего кода C++ у меня есть пара заголовков данных изображения, в которых хранится очень большой массив беззнаковых символов. Я могу без проблем скомпилировать код с помощью автономного NDK.

Однако внутри студии Android, если я включу эти заголовочные файлы данных изображения, студия Android будет зависать со 100% загрузкой ЦП.

Есть ли параметр, который мне не хватает в Android Studio? Как мне решить эту проблему? Я хочу скомпилировать код внутри Android Studio, чтобы я мог выполнить его внутри кода C++. И данные изображения должны быть скомпилированы внутри программы (а не отдельным файлом).

Начало массива беззнаковых символов данных изображения введите здесь описание изображения

Обновлено

На данный момент я попытался использовать #pragma один раз внутри cpp перед включенным заголовком (вместо определения внутри заголовков), и это сработало. Но если я один раз вставлю в заголовок include guards или #pragma, Android Studio все равно зависнет. Я не понимаю, почему прагма один раз и включить защиту не работает, если я помещаю ее в заголовки.

прагма один


person chan3600    schedule 22.11.2017    source источник
comment
Реально замерзает? Вы позволили ему компилироваться достаточно долго (24 часа)?   -  person xyious    schedule 22.11.2017
comment
Насколько большим является очень большой? 97000 строк данных массива довольно огромны, и вы сказали пара. Что за пожиратель памяти вы пишете для Android?   -  person Ken White    schedule 22.11.2017
comment
Файл заголовка составляет 7,3 МБ с 1 массивом символов без знака.   -  person chan3600    schedule 22.11.2017
comment
Возможно, вы включаете другой заголовок, включающий текущий заголовок, без использования #pragma once или других средств защиты.   -  person SegFault    schedule 22.11.2017
comment
И у меня есть 2 из этих заголовочных файлов. Я ни разу не использовал #pragma. сейчас попробую   -  person chan3600    schedule 22.11.2017
comment
Если я добавлю #pragma one/include guards в заголовочный файл, Android Studio все равно зависнет.   -  person chan3600    schedule 22.11.2017
comment
Вы зарегистрировали ошибку?   -  person Dan Albert    schedule 28.11.2017
comment
Да, я подал.   -  person chan3600    schedule 29.11.2017


Ответы (1)


На данный момент я решил проблему. Вместо определения массива символов в заголовочном файле. Я перемещаю массив символов в файл cpp и создаю заголовок global.h, который выглядит следующим образом. Android Studio теперь не будет зависать.

глобальный.h

#ifndef GLOBAL_H
#define GLOBAL_H

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

#endif // GLOBAL_H
person chan3600    schedule 22.11.2017