自己写的程序cmake不报错,编译程序报错如下
对‘Sophus::SE3::operator=(Sophus::SE3 const&)’未定义的引用
对‘Sophus::SE3::SE3()’未定义的引用
对‘Sophus::SE3::SE3(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&)’未定义的引用
对‘Sophus::SE3::SE3(Sophus::SE3 const&)’未定义的引用
查看CMakeLists文件
在 find_package(Sophus REQUIRED) 可以找到Sophus,但还是不成功,
并且头文件也能找到。
解决方法如下:
1. 将libSophus.so路径设置到CMakeLists中
set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")
message(STATUS "Sophus libraries: ${Sophus_LIBRARIES}")
target_link_libraries(${PROJECT_NAME} ${Sophus_LIBRARIES})
2. 将安装Sophus中build中的SophusConfig.cmake放到share
share中无Sophus文件夹的话自己创建一个