写在前面
自己的电脑环境:ubuntu20.04.5
一、问题描述
编译程序没问题,运行关于gtsam的程序时,报错
libmetis-gtsam.so: cannot open shared object file: No such file or directory
二、解决方法
出现这种问题的原因是,程序运行时,假如没有在代码里指定库路径,则库链接路径由环境变量LD_LIBRARY_PATH
指定。因此可以在重新终端先执行下面的指令,再运行程序:
export LD_LIBRARY_PATH=gtsam库的路径:$LD_LIBRARY_PATH
# 由于我这里是源码编译然后安装,因此我这里把 gtsam库的路径写成 /usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
或者直接把下面这句写到~/.bashrc
gedit ~/.bashrc
# 在最后一行添加下面这句指令
# (由于我这里是源码编译然后安装,因此我这里把 gtsam库的路径写成 /usr/local/lib):
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
参考链接
[1] HL棣. cannot open shared object file: No such file or directory 加载库失败的原因及解决 [EB/OL]. https://blog.csdn.net/holidayi/article/details/110652213, 2020-12-04/2022-12-05.