6

有没有人使用 ndk 成功导入了 eigen 库?我正在考虑使用它为我正在开发的应用程序执行所有数学矩阵运算。我发现一些人在一些论坛中提到了它,但除了我不知道他们是否成功地让它工作之外,我阅读的大多数论坛开始提到一些与霓虹灯代码相关的错误......我没有搞砸之前。

如果有人可以向我指出如何使用 ndk 编译像 eigen 这样的现有库的教程,那将是真正有帮助的。这样我以后就可以自己做。我刚刚发现了这个:http ://code.google.com/p/android-cmake/并想尝试自己实现它,但不知道从哪里开始。显然,我前面有一些半密集的阅读,所以我会开始阅读,但如果有人可以加入并帮助编译本机库以与 ndk 一起使用,我将不胜感激。

4

2 回答 2

3

我以前从未使用过 Android NDK,我在物理中使用 Eigen 进行数值计算。

Eigen 只是标题,所以你可以把它放在你喜欢的任何地方。您只需设置该文件夹的包含路径(可能在您的 Android.mk 中)。如果您不需要 Eigen 中不受支持的库,那么您只需要“Eigen”文件夹。其余的仅用于文档和测试。简要查看文档后,我认为您可以通过

LOCAL_C_INCLUDES := path/to/eigen

在你的 Android.mk 中

一个快速而肮脏的解决方案是将 Eigen 放入“jni”文件夹中。但这只有在所有使用 Eigen 的源都在那里的情况下才有效。这样您就不必编辑您的 Android.mk。

于 2011-12-14T20:37:40.993 回答
1

我更喜欢将 Eigen 标头放在 Eclipse 工作区之外,就像 stl 等一样。为此,解压缩 Eigen 下载并将文件夹“Eigen”复制到您选择的目录中:

/Users/foo/libraries/eigen/Eigen

然后,在项目的Android.mk文件中,告诉 ndk-build Eigen 包含文件在哪里:

LOCAL_C_INCLUDES += /Users/foo/libraries/eigen

不要在这里引用实际的“Eigen”文件夹,引用它上面的文件夹,否则包含将不起作用。最后,告诉 eclipse 索引器包含的内容:

右键单击您的项目 -> 属性 -> C/C++ 常规 -> 路径和符号 -> 包含 -> GNU C++ -> 添加... -> 文件系统... -> 再次将其指向 /Users/foo/图书馆/特征

完毕。

于 2012-12-27T23:37:27.533 回答