안드로이드 개발 질문/답변
(글 수 45,052)
native에서 연산한 결과를 출력하려고 로그출력함수를 사용했습니다.
1. __android_log_print(ANDROID_LOG_INFO, "test", "test");
2. __android_log_print(ANDROID_LOG_INFO, "test", "%d", i);
3. __android_log_print(ANDROID_LOG_INFO, "test", "%f", res);
(i는 int형 변수이고, res는 double형 변수입니다.)
1번과 같이 출력할 경우는 정상적으로 출력이 되고,
2번처럼 정수를 출력하고자 할 경우에도 정상적으로 값이 출력되는데,
3번처럼 실수를 출력하고자 할 경우에는 SIGILL (signal 4, Illegal instruction)에러가 발생합니다.
SDK는 1.5 r3이고, NDK는 1.5 이고, 단말기의 firmware는 1.6입니다.
firmware의 config파일을 보니 CONFIG_VFP가 활성화되어있지 않습니다.
개인적인 생각으로 의심이 가는 부분은 두 가지가 있습니다.
하나는 firmware 버전이 달라서 생길 수도 있을 것이고,
또 다른 하나는 VFP가 꺼져있어서 그럴 것이라고 생각이 됩니다.
정확한 원인이 무엇인지 알려주시면 감사하겠습니다.^^
혹, VFP가 원인이라면, 어떻게 활성화시킬 수 있는지 알려주셨으면 좋겠습니다.
(개발에 사용중인 단말은 HTC Dream입니다.)
혹시 %f를 %lf로 바꾸셔도 에러가 나시는가요?