program story

Android에서 C ++ 11 지원 활성화

inputbox 2020. 10. 27. 08:08
반응형

Android에서 C ++ 11 지원 활성화


C ++ 11을 Android에 통합하려면 어떻게해야합니까?


여기의 주요 답변에는 C ++ 11에 대한 실험적 지원이 포함되어 있으며 C ++ 11은 더 이상 실험적이지 않습니다.

명령 줄 NDK 지원 (Java 항목에 IDEA 커뮤니티 에디션 13 사용)을 사용 jni/Application.mk하는 경우 API 19 (OSX ML에서)에서 C ++ 11 지원을 받기 위해 다음을 입력해야합니다 .

NDK_TOOLCHAIN_VERSION := 4.8
# APP_STL := stlport_shared  --> does not seem to contain C++11 features
APP_STL := gnustl_shared

# Enable c++11 extentions in source code
APP_CPPFLAGS += -std=c++11

여기여기 에서 파생 됩니다 .


먼저 도구 체인이 "교차 GCC"인지 확인해야합니다. 내 Linux에서는 기본값 이었지만 MacOSX Lion에는 없었습니다.

이렇게하려면 프로젝트 속성> C / C ++ 빌드> 도구 체인 편집기로 이동 합니다. " 현재 도구 모음 "은 " Cross GCC " 로 설정되어야합니다 . " 호환 가능한 도구 모음 만 표시 "확인란을 선택 취소해야 할 수도 있습니다 .

그런 다음 Android.mk의 LOCAL_CFLAGS에 옵션을 추가합니다 .

LOCAL_CFLAGS := -std=gnu++11

이제 해당하는 새 기호 (예 : "std :: unordered_map")를 찾을 위치를 Eclipse에 알려야합니다. 이동 > GNU C ++ -> 경로 및 기호 - -> 기호 "JNI"> 속성> C / C ++ 일반 마우스 오른쪽 클릭 ( "추가 ..."를 클릭하여), 다음과 같은 기호를 추가

Name: __GXX_EXPERIMENTAL_CXX0X__
Value:

(예 : "값"을 비워 둡니다)


gradle-experimental-plugin을 사용하는 경우 build.gradle 파일 에서이를 설정할 수도 있습니다 .

android.ndk {
    moduleName = "hello-android-jni"
    stl = "stlport_shared"
    cppFlags.add("-std=c++11")
}

최신 gradle-experimental-plugin 0.8.0-alpha4를 사용하여 app / build.gradle에 추가합니다 .

model {
    android {
        ndk {
            moduleName "native"
            CFlags.add("-std=c11") // Enable C11 support
            ldLibs.add("log")
        }
    }
}

참고 URL : https://stackoverflow.com/questions/15616254/enable-c11-support-on-android

반응형