【发布时间】:2025-11-29 10:05:01
【问题描述】:
我需要在我的 Android Studio 项目中包含 Eigen 库来执行一些线性代数运算并使用我为桌面开发的一些 C++ 代码。我一直在寻找有关此主题的信息,但没有太多信息,而且我是 Android NDK 的新手。本征库不需要编译,所以我认为这很容易,但我错过了一些东西。我尝试将 Eigen 文件夹(包含所有包含)复制到 NDK 文件夹(..\Android\Sdk\ndk-bundle\sysroot\usr\include)中,其中还有其他外部库(例如 GLES)但是Android Studio 没有检测到它。我该怎么做??提前谢谢你,我真的需要这个。
【问题讨论】:
-
非常感谢。我将这一行
include_directories(src/main/cpp/Eigen/)Now添加到了我的 CMakeLists.txt 中,现在 Visual Studio “看到”了 Eigen 包含文件,但项目没有编译(参见编辑)。 -
编译器无法“看到”您的头文件,这意味着它正在尝试编译您的 c++ 源代码。 (我认为您需要从源代码编译,因为您需要多个版本的 armeabi、armeabi-v7a、arm64-v8a 等......用于多个可能的处理器)
-
但是Eigen不需要编译,是一个只有头文件的库,或者这就是我的想法。如何在 Android 中编译它?
-
如果您想要一个本地库作为输出(.so 文件的多个版本),您需要编译头文件(即使它们是 .h 头文件,它们也有需要编译的活动 c++ 代码,就像你有 .cpp 文件一样)。你得到的东西像未声明的标识符矩阵,所以编译器看不到矩阵的定义。
标签: android c++ android-ndk eigen