c++로 되어 있는 기존 소스를 cocos2d-x를 사용하여 안드로이드로 변환 작업을 하고 있는데,

win32 compiler는 char를 기본설정인 signed char로 인식하고 있습니다.

원본 소스도 signed char로 인식하는 것을 가정하에 돌아 가게 되어 있고요.


win32에서 아래의 소스를 돌리면, 원하는 결과 대로 모두 -1이 출력되지만,

cygwin을 통해 ./build_native.sh 로 컴파일 하여 안드로이드에서 실행 시키면 255가 출력됩니다.


    char byEquip[8];           
    for (int i=0; i < 8; i++) {
        byEquip[i] = -1;
        CCLog("pEquip->byEquip[%d]: [%d]", i, byEquip[i]);
    }

결론은 win32 compiler에서는 signed char로 인식하고, arm compliler는 unsigned char로 인식한다는 것입니다.


구글링을 해 보니 arm compiler 옵션으로 --signed_chars 을 주면 된다고 하는데..

이 옵션을 어디에다 어떻게 넣어야 할지 모르겠습니다.


물론 소스에서 (signed char)로 형변환하여 처리하면 되지만, 기존 소스가 방대하다 보니, 작업량이 너무많고,

체크하지 못하고 넘기는 부분이 발생하여 시간과 효율성 면에서 비효과 적입니다.


NDK 설정이나 .mk 파일 등에서 --signed_chars 옵션을 주면 될 것 같은데,

설정 해줄 위치 및 방법에 대해서 모르겠습니다.