3

I am trying to use ceres solver with my android application, and there does not seem to be a lot of documentation about using them both together properly. I have followed the build instructions from the ceres solver website, as well as this helpful tutorial:

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

This has gotten me far and everything is linked properly, but when I try to compile the project I get an odd error:

/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

Sure enough that file does not exist. But the question is why? Is it something that is supposed to be auto-generated? or created my self?

I might be important, so here is my 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)
jpo38
  • 20,821
  • 10
  • 70
  • 151
The4thIceman
  • 3,709
  • 2
  • 29
  • 36

1 Answers1

3
  1. Questions like this are best asked on the ceres-solver mailinglist.
  2. The config.h you are looking for exists in

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

as the documentation in that file indicates

Default (empty) configuration options for Ceres.

IMPORTANT: Most users of Ceres will not use this file, when compiling Ceres with CMake, CMake will configure a new config.h with the currently selected Ceres compile options and copy it into the source directory before compilation. However, for some users of Ceres who compile without CMake, this file ensures that Ceres will compile, with the user either specifying manually the Ceres compile options, or passing them directly through the compiler.

you are going to have to do your own compiler defines for the various variables that are defined in

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

Sameer Agarwal
  • 592
  • 2
  • 4
  • forgive my lateness, I completely forgot about this question. You are indeed correct. I was using eclipse and my partner was using Android studio and he figured out how to do it there, so I just switched over and forgot about this – The4thIceman Feb 12 '15 at 18:47