安装Eigen库的问题
Ubuntu14.04 :By not providing “FindEigen3.cmake” in CMAKE_MODULE_PATH
解决办法:
1、找到一个FindEigen3.cmake文件,直接在电脑里面搜索。一般ceres,pcl里面都有
2、复制到自己这个的工程下
3、在工程的CMakeLists.txt里面。添加这句话:
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
参考:
https://blog.csdn.net/handsome_for_kill/article/details/53288771
安装sophus存在的问题:
1、CMakeFiles/Sophus.dir/build.make:65: recipe for target ‘CMakeFiles/Sophus.dir/sophus/so2.cpp.o’ failed
make[2]: *** [CMakeFiles/Sophus.dir/sophus/so2.cpp.o] Error 1
make[2]: Leaving directory ‘/home/drew/svo/workspace/Sophus/build’
CMakeFiles/Makefile2:107: recipe for target ‘CMakeFiles/Sophus.dir/all’ failed
make[1]: *** [CMakeFiles/Sophus.dir/all] Error 2
解决办法:
修改Sophus下的so2.cpp文件
将下面这个修改一下:
unit_complex_.real() = 1.;
unit_complex_.imag() = 0.;
修改为:
unit_complex_.real(1.);
unit_complex_.imag(0.);
2、libsophus.so没有链接上
出现:undefined reference to `Sophus::SO3::log() const’
解决办法:手动链接
为使用 sophus,您需要使用find_package命令找到它
find_package( sophus REQUIRED )
set(Sophus_LIBRARIES set(Sophus_LIBRARIES /usr/local/lib/libSophus.so) )//改成自己的路径,我的在这里
include_directories("/usr/include/eigen3")
include_directories( ${Sophus_INCLUDE_DIRS} )
安装pangolin出现的问题:
1、…
In file included from /home/micoarm/Pangolin/src/video/video_output.cpp:33:0:
/home/micoarm/Pangolin/include/pangolin/video/drivers/ffmpeg.h:94:5: error: ‘PixelFormat’ does not name a type
PixelFormat fmtout;
解决办法:
ffmpeg,openni 有问题,注释/src/Cmakelist中的一些代码
注释部分代码:
#find_package(FFMPEG QUIET)
#if(BUILD_PANGOLIN_VIDEO AND FFMPEG_FOUND)
# set(HAVE_FFMPEG 1)
# list(APPEND INTERNAL_INC ${FFMPEG_INCLUDE_DIRS} )
# list(APPEND LINK_LIBS ${FFMPEG_LIBRARIES} )
# list(APPEND HEADERS ${INCDIR}/video/drivers/ffmpeg.h)
# list(APPEND SOURCES video/drivers/ffmpeg.cpp)
# message(STATUS "ffmpeg Found and Enabled")
#endif()
#find_package(OpenNI QUIET)
#if(BUILD_PANGOLIN_VIDEO AND OPENNI_FOUND)
# set(HAVE_OPENNI 1)
# list(APPEND INTERNAL_INC ${OPENNI_INCLUDE_DIRS} )
# list(APPEND LINK_LIBS ${OPENNI_LIBRARIES} )
# list(APPEND HEADERS ${INCDIR}/video/drivers/openni.h )
# list(APPEND SOURCES video/drivers/openni.cpp)
# message(STATUS "OpenNI Found and Enabled")
#endif()
#find_package(OpenNI2 QUIET)
#if(BUILD_PANGOLIN_VIDEO AND OPENNI2_FOUND)
# set(HAVE_OPENNI2 1)
# if(_LINUX_)
# add_definitions(-Dlinux=1)
# endif()
# list(APPEND INTERNAL_INC ${OPENNI2_INCLUDE_DIRS} )
# list(APPEND LINK_LIBS ${OPENNI2_LIBRARIES} )
# list(APPEND HEADERS ${INCDIR}/video/drivers/openni2.h )
# list(APPEND SOURCES video/drivers/openni2.cpp)
# message(STATUS "OpenNI2 Found and Enabled")
#endif()
详见https://blog.csdn.net/limhsysu/article/details/84959736
使用glog出现的问题
undefined reference to ‘google::FlagRegisterer::FlagRegisterer(char const*, char const*, char const*, bool*, bool*)’
解决方法(参考:https://blog.csdn.net/u012348774/article/details/80558533)
在链接那里,后面加入那两个文件
如果是使用CMake文件,记的链接gflags库。
下边给出一个CMakeLists.txt的示例
cmake_minimum_required(VERSION 2.9)
project(test_glog)
add_executable(test_glog main.cpp)
target_link_libraries(test_glog libgflags.a libglog.a)