我正在尝试在我的android应用程序中使用ceres求解器,并且似乎没有太多关于将它们正确地一起使用的文档。我遵循了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)

最佳答案

最好在ceres-solver邮件列表中提出这样的问题。
您要查找的config.h存在于


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

如该文件中的文档所示

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

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

您将必须为在中定义的各种变量做自己的编译器定义

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

关于android - 使用Android和Eclipse编译Ceres Solver,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27695200/

10-09 01:27