2017-11-22 6 views
1

Android Studio에서 NDK를 사용하여 C++ 코드를 컴파일하려고합니다. 내 C++ 코드 안에는 매우 큰 unsigned char 배열을 저장하는 이미지 데이터 헤더 몇 개가 있습니다. 문제없이 독립형 NDK로 코드를 컴파일 할 수 있습니다.큰 C++ 헤더 파일로 Android Studio가 다운 됨

그러나 안드로이드 스튜디오에서는 이미지 데이터 헤더 파일을 포함 시키면 Android 스튜디오가 100 % CPU로드로 정지됩니다.

Android Studio에는 설정이 누락 되었습니까? 이 문제를 어떻게 해결해야합니까? 안드로이드 스튜디오 안의 코드를 컴파일하고 싶기 때문에 C++ 코드 내부를 단계별로 진행할 수 있습니다. 그리고 이미지 데이터는 프로그램 내에서 컴파일되어야합니다 (별도의 파일이 아님). 지금

업데이트

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

, 나는이 헤더를 포함하기 전에 (대신 헤더 내에서 정의하는) cpp가 내부에서 한번의 #pragma를 사용하려고, 그것은 작동합니다. 하지만 헤더 안쪽에 가드 또는 #pragma를 넣으면 Android Studio가 계속 고정됩니다. 나는 왜 pragma를 한 번 사용했는지 이해하지 못하고, 헤더에 넣어두면 경비원도 포함되지 않습니다.

pragma one

+0

는 실제로 동결인가? 충분히 오랫동안 (24 시간) 컴파일 했습니까? – xyious

+0

크기는 얼마나 큽니까? 배열 데이터의 97000 라인은 꽤 엄청 나서, 당신은 * 한 쌍을 말했습니다. 안드로이드를 위해 어떤 종류의 메모리를 쓰고 있습니까? –

+0

헤더 파일은 7.3MB이고 서명 된 문자 배열은 1 개가 있습니다 – chan3600

답변

0

지금, 나는이 문제를 해결했다. 헤더 파일에 char 배열을 정의하는 대신. char 배열을 cpp 파일로 이동하고 다음과 같이 global.h 헤더를 만듭니다. Android Studio가 이제 고정되지 않습니다.

global.h

#ifndef GLOBAL_H 
#define GLOBAL_H 

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

#endif // GLOBAL_H