交叉编译Ceres

环境需求:

You will need Android NDK r15 or higher to build Ceres solver.

eigen3我当时编译的时候自己先交叉编译了eigen3,这个东西好像只有头文件,好像不存在移植,都是通用的

编译

复制代码
cmake \
-DCMAKE_TOOLCHAIN_FILE=\
    $NDK_DIR/build/cmake/android.toolchain.cmake \
-DEIGEN_INCLUDE_DIR=/path/to/eigen/header \
-DANDROID_ABI=armeabi-v7a \
-DANDROID_STL=c++_shared \
-DANDROID_NATIVE_API_LEVEL=android-24 \
-DBUILD_SHARED_LIBS=ON \
-DMINIGLOG=ON \
<PATH_TO_CERES_SOURCE>
复制代码

执行如上命令后,首先会遇到如下错误:undefined reference to '__android_log_write'

解决方法:打开[ceres]/internal/ceres/minglog/glog/logging.h,搜索__android_log_write,将带有这个函数的几行注释掉。

重新编译,最后会报错误:'libc++_shared.so' no found

解决方法:这个错误无关紧要,可以看到当前目录下的lib目录已经生成了我们想要的库文件。

 

编译结果

自己找一下应该有头文件和so文件

 

posted @   Z_Chan  阅读(331)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示