Ceres Solver for android
来源:互联网 发布:电脑打字下载什么软件 编辑:程序博客网 时间:2024/05/18 00:23
最近开发中,需要对图片做一些处理与线性技术,这时就用到了Ceres Solver。如何把Ceres Solver集成到Android里呢? 官网给了一个解决方案,简洁明了:
Download the Android NDK version r9d or later. Run ndk-build from inside the jni directory. Use the libceres.a that gets created.(意思是:下载NDK r9d 或更新版本,然后进入 下载最新ceres-solver包的jni目录里,运行ndk-build 得到 libceres.a 静态包)
步骤如下:
1、添加NDK的环境变量,不懂的可以搜索安装教程。
2、运行 =》cmd,打开命令行窗口, cd 进入到下载ceres-solver包的jni目录里,运行 ndk-build
报:jni/Android.mk:80: *** Ceres requires NDK version r9d or greater . Stop. 错误!
查看 Android.mk 80 行,可以知道它是判断当前NDK的版本,运行了 jni 目录下的shell脚本(assert_ndk_version.sh)。
但是我发现我的NDK已经是最新了,为什么还报这异常呢? 查看当前的NDK版本,可以点击这。
认真查看了 assert_ndk_version.sh 文件的内容,发现,它是查找NDK根目录下的一个叫 RELEASE.TXT 文件, 但我们没有。所以新建一个, 然后在里面加入 r14b (64-bit) (替换成你的NDK版本)
在MAC 系统上可以跑通,在windows 上还会继续报上面的错误,因为windows 不能直接跑shell脚本。 直接了当,Android.mk 79—81行 用 # 注释掉。 然后就会编译出 libceres.a 静态文件。
但是这样编译出来的静态文件,在运用的时候,还是会报错,打开 ceres-solver包的jni目录下的
Application.mk文件,可以看到:
APP_CPPFLAGS += -fno-exceptions
APP_CPPFLAGS += -fno-rtti
APP_STL := c++_static
名称说明>功能libstdc++(默认)默认最小系统 C++ 运行时库。不适用gabi++_staticGAbi++ 运行时(静态)。C++ 异常和 RTTIgabi++_sharedGAbi++ 运行时(共享)。C++ 异常和 RTTIstlport_staticSTLport 运行时(静态)。C++ 异常和 RTTI;标准库stlport_sharedSTLport 运行时(共享)。C++ 异常和 RTTI;标准库gnustl_staticGNU STL(静态)。C++ 异常和 RTTI;标准库gnustl_sharedGNU STL(共享)。C++ 异常和 RTTI;标准库c++_staticLLVM libc++ 运行时(静态)。C++ 异常和 RTTI;标准库c++_sharedLLVM libc++ 运行时(共享)。C++ 异常和 RTTI;标准库
c++_static 我们平常比较少用到(因为我不熟悉C/C++),所以将上述三个参数改为:
APP_STL := gnustl_static
APP_CPPFLAGS += -frtti
APP_CPPFLAGS += -fexceptions
然后ndk-build,得到一个正确的 libceres.a 静态文件。 (欢迎留言讨论)
参考资料: http://tech.sandyeggi.com/2013/10/using-ceres-solver-in-android-ndk.html
我编译好的ceres-solver 项目 http://pan.baidu.com/s/1bo3ENoj
阅读全文
0 0
- Ceres Solver for android
- Ceres solver
- Ceres-Solver库入门
- Ceres solver tutorial
- Windows 配置 Ceres-solver
- VS2013 ceres-solver编译
- ceres-solver拟合椭球
- ceres solver 学习笔记
- ceres-solver使用
- ceres solver使用
- Ceres Solver使用
- Ceres(5): Solver
- ceres-solver库编译说明
- ceres-solver库使用示例
- Ceres-Solver库下载网址
- ceres-solver库编译说明
- Cartographer ROS ceres-solver fail
- Ceres-Solver学习笔记(1)
- Haskell学习笔记 --- 理解 max :: (Ord a) => a -> (a -> a)
- 程序员必读书籍推荐
- USACO-Section1.4 Arithmetic Progressions[...]
- 通用RecyclerView和DataBinding
- Nginx配置文件(nginx.conf)配置详解
- Ceres Solver for android
- 手动安装m4, autoconf, automake, libtool
- SVN与Git区别
- java线程暂停与恢复suspend和resume
- cocoapods找不到第三方库Unable to find a pod with name, author, summary, or description matching 'AFNetwork'
- hdu 4858 项目管理 分块
- JavaWeb servlet 接收ajax数组
- vector常用操作
- Unable to partial resync with the slave for lack of backlog (Slave request was: 2595405802583).