我正在尝试使用我的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)
答案 0 :(得分:2)
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