在虚拟终端实验中,我装的vga库后并进行相关编译后,编译能通过,但是运行时却报错:error while loading shared libraries:libvga.so.1:cannot open shared object file :No such file or directory 。这是个很普遍的错误,找不到共享库,但是我发现其实这个库已经安装上了,在/usr/local/lib目录下已经存在,但是程序就是没找到它
那就表示系統不知道xxx.so 放在哪個目錄下。
這個時候就要在/etc/ld.so.conf中加入xxx.so所在的目錄。
一般而言,有很多so檔會在/usr/local/lib這個目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行,可以解決此問題。加的时候直接在后面补上:/usr/local/lib。保存并退出后,还用用ldconfig命令进行更新。还要注意,这些命令如果说权限的原因的话,可以通过加sudo
sudo vim /etc/ld.so.conf
/usr/local/lib
sudo ldconfig
这样做之后再运行就没有错误了。