libvinsEstimatorLib.so:对‘Sophus::SO3::SO3(double, double, double)’未定义的引用

libvinsEstimatorLib.so:对‘Sophus::SO3::SO3(double, double, double’未定义的引用

0.引言

类似于这种的报错,没有定位到具体的位置,一般就是库的问题,但是很奇怪没加库头文件却没报错.

1.err

****/devel/lib/libvinsEstimatorLib.so:对‘Sophus::SO3::SO3(double, double, double)’未定义的引用
****/devel/lib/libvinsEstimatorLib.so:对‘Sophus::SO3::matrix() const’未定义的引用
collect2: error: ld returned 1 exit status

2.solved

CMakeLists.txt中Sophus库没有链接.
解决方案1:

...
#在CMakeLists.txtx中添加链接库
find_package(Sophus REQUIRED)
include_directories( 
    ${Sophus_INCLUDE_DIRS}
)
...
#在CMakeLists.txt中链接库中加上
target_link_libraries(${Sophus_LIBRARIES}) 

解决方案2:

#直接在CMakeLists.txtx中添加链接库的绝对位置
${/usr/local/lib/libSophus.so}

猜你喜欢

转载自blog.csdn.net/fb_941219/article/details/103704464