Android NDK 包含自己的
Android NDK Include Eigen
我正在尝试将 Eigen3 库包含在 Android 项目中,这样我就可以在本机代码中进行一些 Matrix 数学运算。
当我编译我的项目时它抱怨:
In file included from jni/Eigen/Dense:1:0,
from jni/Ares.cpp:9:
jni/Eigen/Core:156:22: fatal error: functional: No such file or directory
#include <functional>
^
compilation terminated.
我认为包含 STL 可能会有帮助,所以我有一个 Application.mk
文件,如下所示:
APP_STL := gnustl_static
虽然没有骰子。
将 /usr/include/c++/4.9.2/
添加到我的 LOCAL_C_INCLUDES
变量可以解决该错误,但会引发:
In file included from jni/Eigen/Core:152:0,
from jni/Eigen/Dense:1,
from jni/Ares.cpp:9:
/usr/include/c++/4.9.2/cstdlib:41:28: fatal error: bits/c++config.h: No such file or directory
#include <bits/c++config.h>
除了逐步添加我机器的大部分 headers 之外,有没有办法包含 Eigen 并解决这些问题?
以下解决了上述问题!
在目录 projet_dir/jni/
中创建一个名为 Application.mk
的文件(所以它是 projet_dir/jni/Application.mk
)。
将以下行添加到该文件
APP_STL:=stlport_static
如果您 运行 遇到 shared_ptr 错误,请尝试使用 APP_STL := gnustl_static
。
我正在尝试将 Eigen3 库包含在 Android 项目中,这样我就可以在本机代码中进行一些 Matrix 数学运算。
当我编译我的项目时它抱怨:
In file included from jni/Eigen/Dense:1:0,
from jni/Ares.cpp:9:
jni/Eigen/Core:156:22: fatal error: functional: No such file or directory
#include <functional>
^
compilation terminated.
我认为包含 STL 可能会有帮助,所以我有一个 Application.mk
文件,如下所示:
APP_STL := gnustl_static
虽然没有骰子。
将 /usr/include/c++/4.9.2/
添加到我的 LOCAL_C_INCLUDES
变量可以解决该错误,但会引发:
In file included from jni/Eigen/Core:152:0,
from jni/Eigen/Dense:1,
from jni/Ares.cpp:9:
/usr/include/c++/4.9.2/cstdlib:41:28: fatal error: bits/c++config.h: No such file or directory
#include <bits/c++config.h>
除了逐步添加我机器的大部分 headers 之外,有没有办法包含 Eigen 并解决这些问题?
以下解决了上述问题!
在目录
projet_dir/jni/
中创建一个名为Application.mk
的文件(所以它是projet_dir/jni/Application.mk
)。将以下行添加到该文件
APP_STL:=stlport_static
如果您 运行 遇到 shared_ptr 错误,请尝试使用
APP_STL := gnustl_static
。