2014-03-25 3 views
1

내 응용 프로그램에서 스레드를 사용하는 데 문제가 있습니다. 안드로이드에서 사용되는 C++ 파일을 작성 중이므로 NDK와 cmake로 컴파일됩니다. 스레드 지원을로드하는 방법을 모르겠습니다. 내가 CMakeLists 나 MakeFile 같은 것을 써야 할 것이 있습니까? 나는 C++ 코드를 작성하는 데 절대적인 초보자이다. ...Cake에서 cmake 및 Android NDK로 스레드 지원을로드하는 방법 NDK

+0

이 코드는 : C :/android-ndk-r8e/sources/cxx-stl/gnu-libstdC++/4.6/include/bits/C++ 0x_warning.h : 32를 포함하여 만든 후에 생성됩니다. : 2 : error : #error이 파일에는 ISO C++ 2011 표준에 대한 컴파일러 및 라이브러리 지원이 필요합니다. 이 지원은 현재 실험적이므로 -std = C++ 11 또는 -std = gnu ++ 11 컴파일러 옵션을 사용하여 활성화해야합니다. –

+0

제안 된 플래그 중 하나를 추가하려고 했습니까? – Michael

+0

정확히 어떻게 해야할지 모르겠다 ... 컴파일러 버전 4.6을 사용하면 다른 것을해야한다는 어딘가를 읽을 수도있다 ... –

답변

0

Cmake을 Android 용으로 사용하는 경우. 당신이

ANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.8 

를 지정해야 std::thread https://github.com/taka-no-me/android-cmake 후 가능합니다
ANDROID_STL=gnustl_static 

(또는 gnustl_shared),

0

단순히 추가 Cmake와 C++ 11 스레드 클래스 (std::thread)를 사용하려면 당신의 CMakeLists.txt 다음 줄 :

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror") 

전체 예제 here.