操作系统:Ubuntu LTS 20.04
错误提示
在使用第三方so库的时候需要引入到自己的项目中,在编译阶段是没问题的,但是一旦运行会报以下错误:
error while loading shared libraries: xxxxxxx.so: cannot open shared object file: No such file or directory
问题排查
假设:so库路径为/usr/local/lib/test.so
1、确定在CmakeList.txt中添加了正确的so库路径:
target_link_libraries(test /usr/local/lib/test.so)
2、如果添加了还是报同样的错误,由于操作系统在运行程序过程中的package搜索路径依赖于LD_LIBRARY_PATH
这个环境变量,所以检查是否包括该路径:
export | grep LD_LIBRARY_PATH
如果没有,则添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
注意:这个添加方法在每次打开terminal后需要重新输入,如果需要永久保存,则需要在.bashrc
文件中添加,方法为:vim ~/.bashrc
写入后保存,重启terminal就可以生效了。