使用Android和Eclipse编译Ceres解算器

时间:2014-12-29 19:59:48

标签: android eclipse android-ndk ceres-solver

我正在尝试使用我的Android应用程序使用ceres解算器,并且似乎没有很多关于正确使用它们的文档。我已经遵循了ceres solver网站的构建说明,以及这个有用的教程:

http://tech.sandyeggi.com/2013/10/using-ceres-solver-in-android-ndk.html

这让我走得很远,一切都正常联系,但当我尝试编译项目时,我得到一个奇怪的错误:

/Users/Steven/Documents/ceres-solver-1.10.0/include/ceres/internal/port.h:39:35: fatal error: ceres/internal/config.h: No such file or directory

果然该文件不存在。但问题是为什么?这是应该自动生成的吗?还是创造了我的自我?

我可能很重要,所以这是我的Android.mk:

LOCAL_PATH := $(call my-dir)
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true

include $(CLEAR_VARS)
LOCAL_MODULE    := ceres
LOCAL_SRC_FILES := libceres.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_C_INCLUDES += /Users/Steven/Documents/android-ndk-r10d/sources/cxx-stl/stlport/stlport
LOCAL_C_INCLUDES += /Users/Steven/Documents/eigen-eigen-36fd1ba04c12/eigen-eigen-36fd1ba04c12
LOCAL_C_INCLUDES += /Users/Steven/Documents/ceres-solver-1.10.0/include
LOCAL_C_INCLUDES += /Users/Steven/Documents/ceres-solver-1.10.0/internal/ceres/miniglog
LOCAL_MODULE    := DrinkMateDeveloper
LOCAL_SRC_FILES := DrinkMateDeveloper.cpp
LOCAL_STATIC_LIBRARIES  =  ceres
include $(BUILD_SHARED_LIBRARY)

1 个答案:

答案 0 :(得分:2)

  1. 最好在ceres-solver邮件列表中询问这样的问题。
  2. 您正在寻找的config.h存在于
  3. CERES-求解器-1.10.0 /配置/的Ceres /内部/ config.h中

    正如该文件中的文档所示

    Ceres的默认(空)配置选项。

    重要提示:Ceres的大多数用户在编译Ceres时都不会使用此文件            使用CMake,CMake将使用当前配置新的config.h            选择Ceres编译选项并将其复制到源代码中            编译前的目录。但是,对于Ceres的一些用户            如果没有CMake编译,这个文件确保Ceres会            编译,用户手动指定Ceres            编译选项,或直接通过编译器传递它们。

    你将不得不为

    中定义的各种变量做自己的编译器定义

    https://ceres-solver.googlesource.com/ceres-solver/+/master/cmake/config.h.in?autodive=0%2F