ceres最小二乘法求解库

debug, error:'interger_sequence' is not a member of 'std' std::integer_sequence
解决办法:CMakeLists.txt 中添加以下标准:add_definition(-std = 'c++14')。因为ceres要求c++14以上版本。

undefind reference to cv::, 表示未找到cv在倚赖库,解决方法,在CMakeLists.txt文件中,使用find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS})
add_executables(exename ${OpenCV_LIBS})
由此可见find_package很好用,因为到OpenCV库文件所在地看到好多共享文件根本不知道要去调用哪一个。

undefind reference to pthread_create, 是因为需要用到pthread库。解决方法如下:
find_package (Threads REQUIRED)target_link_libraries(ceres_curve_fitting  ${CMAKE_THREAD_LIBS_INIT})

glog问题,undefind referenced to the glog::..,由于系统自带不链接,需要先下载Findglog.cmake放到项目的cmake目录。然后find_package(glog required), target_link_library(hello glog)

目前我所遇到的undefind referenced to XXX,都是依赖库的问题,所以对于某些库,如果知道它所所依赖的包,提前把它们的include路径准备好,也可以是lib文件。使用find_package方法,需要准备好FindXX.cmake文件并把它放到工程的cmake目录文件。

今天需要记录的是一些ceres的使用方法,ceres库主要是用来进行最小二乘法求解的方法。

你可能感兴趣的:(ceres最小二乘法求解库)