交叉編譯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文件
浙公網安備 33010602011771號