android - 将 Eigen 库添加到 Android NDK

标签 android c++ android-ndk eigen

我需要在我的 Android Studio 项目中包含 Eigen 库来执行一些线性代数运算并使用我为桌面开发的一些 C++ 代码。我一直在寻找有关此主题的信息,但信息不多,而且我是 Android NDK 的新手。 Eigen 库不需要编译,所以我认为这很容易,但我遗漏了一些东西。我试图将 Eigen 文件夹(包含所有包含)复制到 NDK 文件夹(..\Android\Sdk\ndk-bundle\sysroot\usr\include),其中还有其他外部库(例如 GLES)但是Android Studio 没有检测到它。我该怎么做??提前谢谢你,我真的需要这个。

编辑 1: As you can see here, Eigen lib is included, but when I compile the project there are many errors, and I don't know why. Any ideas?

最佳答案

我终于达到了我的目标,我在 Android 中使用 Eigen。如果您正在尝试在 Android 中使用 Eigen 库,我希望这对您有所帮助:

  1. 从官方网站下载 Eigen 库。
  2. 复制你下载的 zip 里面的 Eigen 文件夹,里面有所有的 库的 header (.h 文件)并将其粘贴到您选择的一个文件夹中 在项目中。例如,我是这样做的:

    ../app/src/main/cpp

  3. 编辑 CMakeLists.txt,将这一行添加到 Eigen 文件夹的路径 在你的项目中: include_directories(src/main/cpp/Eigen)
  4. 在真实设备(不在模拟器上运行)中启动应用程序以加载 Eigen 里面有头文件。
  5. 在您的 cpp 文件中包含 Eigen header 并正常使用它们。例如:

    #include "Eigen/Dense" void multiply2Matrices(){ Eigen::MatrixXd M(2,2); Eigen::MatrixXd V(2,2); for (int i = 0; i<=1; i++){ for (int j = 0; j<=1; j++){ M(i,j) = 1; V(i,j) = 2; } } Eigen::MatrixXd Result = M*V; }

在我的例子中,我不需要编译任何东西,只需要使用官方 Eigen 库的头文件

关于android - 将 Eigen 库添加到 Android NDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48317701/

相关文章:

java - RxJava 单后台线程调度器

java - Android - 在WebView中显示本地镜像

c++ - 在 C++ 中使用 GSL 蒙特卡罗积分求解多维函数

c++ - 什么是 decltype(0 + 0)?

java - 在 Android 上使用 JNI 的成本

java - MPAndroidChart。如何播放scaleX动画来显示BarChart中实体的范围?

c++ - 整数阈值

makefile - 你如何告诉 Android Studio 3.0 在哪里可以找到外部 ndk 源文件?

android - 调试 Android JNI/C++ 找不到目标机器的调试符号主动拒绝连接

android - 使用安卓默认按钮