我试图在Eclipse中使用带有Android ndk的boost库和Windows.我试着按照这个教程
我在cygwin中遇到了"bjam"命令.
bjam --without-python --without-serialization toolset = gcc-android4.4.3 link = static runtime-link = static target-os = linux --stagedir = android
错误:找不到bjam命令.
什么是bjam?我也沿着ndk r8e使用了boost 1.53.请有人帮我这个吗?
我试图获取以下示例代码,以了解异步编程是否在Android NDK中有效.尽管NDK具有<future>被识别为标题的STL ,但std::async未被识别的STL 未被识别.我试图使用的代码如下:
#include <future>
#include <iostream>
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";
}
Run Code Online (Sandbox Code Playgroud)
此外,所有包含路径都已设置为Properties-> Paths and Symbols下的指定文件夹
Errors
Description Resource Path Location Type
invalid use of incomplete type 'std::__async_sfinae_helper<void (Foo::*)(int), void (Foo::*)(int), Foo*, int>::type {aka struct std::future<void>}' Sample.cpp /Project12/jni line 50 C/C++ Problem
Description Resource Path Location …Run Code Online (Sandbox Code Playgroud) 我尝试使用以下函数来检查android ndk中是否支持std :: async以及windows中的cygwin.我使用的功能如下
机器:64位赢得8与cygwin
Android:r8e
Eclipse:Juno 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";
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
说明资源路径位置类型无效使用不完整类型'std :: __ async_sfinae_helper :: type {aka struct std :: future}'Sample.cpp/Cli13/jni line 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工作???
谢谢.