编译有关Sophus(模板类)的程序遇到如下错误:
问题出在cmake找不到libSophus.so. 经检查,库文件libSophus.so
安装在/usr/local/lib/下,
因此在CMakeLists.txt中加入
find_package(Sophus REQUIRED)
set(Sophus_LIBRARIES libSophus.so)
include_directories( ${Sophus_INCLUDE_DIRS} )
target_link_libraries(${PROJECT_NAME} ${Sophus_LIBRARIES})
编译发现出现报错找不到${PROJECT_NAME},原因是target_link_libraries(${PROJECT_NAME} ${Sophus_LIBRARIES})应该放在add_executable(${PROJECT_NAME} src/lesson1.cpp)下面,不然找不到${PROJECT_NAME}.
当时的错误做法是:将add_executable(${PROJECT_NAME} src/lesson1.cpp)移到了target_link_libraries(${PROJECT_NAME} ${Sophus_LIBRARIES})上面,随后catkin_make
可以通过,可执行文件生成在了build路径下,而不是devel中,原因是add_executable被提到了catkin_package()之前(具体细节未知)