解决Ubuntu20.04下kalibr_allan编译报错libpython3.8.so: undefined reference to `XML_SetHashSalt‘

kalibr_allan项目链接:
https://github.com/rpng/kalibr_allan

在Ubuntu20.04下编译kalibr_allan工具,碰到如下报错信息:

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libpython3.8.so: undefined reference to `XML_SetHashSalt'
collect2: error: ld returned 1 exit status
make[2]: *** [kalibr_allan/bagconvert/CMakeFiles/bagconvert.dir/build.make:161:/home/slender/kalibr_allan/devel/lib/bagconvert/bagconvert] 错误 1
make[1]: *** [CMakeFiles/Makefile2:610:kalibr_allan/bagconvert/CMakeFiles/bagconvert.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j8 -l8" failed

参考了如下博客,发现是因为libexpat.so.1冲突,matlab和python3.8中的libexpat.so.1指向不同.
https://www.coder.work/article/6733037

找到matlab下的libexpat.so.1,改掉名称就好了:

cd /usr/local/MATLAB/R2018b/bin/glnxa64
mv libexpat.so.1 libexpat.so.1.NOFIND

此外,如果碰到找不到matlab路径的情况,修改/kalibr_allan/bagconvert/cmake/FindMatlab.cmake文件第60行:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/slender_1031/article/details/128487692