2013-07-18 273 views
5

我試圖使用下面的函數來檢查是否在Windows ndk中與Eclipse一起支持std :: async和cygwin。我使用的功能在下列在android ndk中使用c + +不完整類型的無效使用std :: async

機:64位贏得8 cygwin的

安卓R8E

的Eclipse:朱諾4.2.1

ADT:22.0.1

struct Foo 
{ 
Foo() : data(0) {} 
void sum(int i) { data +=i;} 
int data; 
}; 

int main() 
{ 
    Foo foo; 

    auto f = std::async(&Foo::sum, &foo, 42); 
    f.get(); 
    std::cout << foo.data << "\n"; 
} 

我收到以下錯誤:

說明資源路徑位置T YPE 無效使用不完全類型 '的std :: __ async_sfinae_helper ::類型{又名結構的std ::未來}' sample.cpp的/ Cli13/JNI線63的C/C++問題

注:我已設置_GLIBCXX_HAS_GTHREADS和還GXX_EXPERIMENTAL_CXX0X以及ATOMIC_INT_LOCK_FREE ...默認情況下,ndk使用4.6工具鏈。我必須手動在Properties-> C/C++ - > Includes中包含gnu-libstd ++ for 4.7。是否有任何解決方法使std :: async工作?

謝謝。

回答

4

Android NDK r8e沒有完整的運行時庫支持C++11。您需要使用某些第三方stdlib編譯自己的NDK,或者等待Google將Clang 3.3包含在NDK中,即C++11功能完整。

相關問題