3

我正在尝试将 ceres 求解器与我的 android 应用程序一起使用,并且似乎没有很多关于正确使用它们的文档。我遵循了 ceres 求解器网站上的构建说明,以及这个有用的教程:

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)
4

1 回答 1

3
  1. 此类问题最好在 ceres-solver 邮件列表中提出。
  2. 您要查找的 config.h 存在于

ceres-solver-1.10.0/config/ceres/internal/config.h

正如该文件中的文档所示

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

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

你将不得不为定义的各种变量做你自己的编译器定义

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

于 2014-12-30T02:41:33.037 回答