2016-07-24 4 views
0

나는 안드로이드 용 C 앱을 만들고 있는데, 내 앱에서 'sigemptyset'을 사용합니다. NDK를 사용하여 코드를 컴파일하면 성공적으로 컴파일되지만 앱을 실행할 때 나는 cannot locate symbol 'sigemptyset'이됩니다.안드로이드 ndk는 "sigemptyset"심볼을 찾을 수 없습니다

검색 후 문제가 내가 android-5 빌드 ndk-r11을 사용하여 응용 프로그램을 빌드하는 것을 알게되지만 sigemptyset 정의가 변경된 android 4.4에서 응용 프로그램을 실행하고 있습니다. 그래서 나는 Android.mk에 다음과 같은 추가 :

TARGET_PLATFORM := android-19 

하지만 난 여전히 얻을 같은 오류

사람이이 문제를 해결하는 방법을 알고 있나요?

편집 :

이 질문은 다른 질문의 중복도 Application.mk

+0

가능한 복제 [하는데 sigemptyset() NDK UnsatisfiedLinkError를 dlopen을()을 (http://stackoverflow.com/questions/25975291/sigemptyset-ndk-unsatisfiedlinkerror-dlopen) – kaitian521

답변

1

문제의 원인에 APP_PLATFORM 매개 변수를 변경이 제안 답이 사용 된 NDK의 버전이되지 않는 것이 아니라 타겟 플랫폼의 버전. android-19sigemptyset() (및 기타 많은 기능)이 플랫폼 헤더에서 인라인으로 선언 된 마지막 플랫폼 버전입니다. 결과적으로 해당 장치의 시스템 libc에는 이러한 기능이 포함되어 있지 않습니다. 그렇다면 올바른 대상 플랫폼을 사용하여 구형 장치에서 코드를 실행할 수 있어야합니다. 그러나 당신은 그것을 잘못하고 있습니다. 원하는 것은 모두 Application.mk

APP_PLATFORM := android-19 

을 추가하는 것입니다. 의

+0

어쨌든 이미 찾았지만, 한 당신에게 답변 감사합니다 맞다 – ammcom

관련 문제